Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »


1.2.0 • Public • Published

Hubot Factoids

A factoids implementation for Hubot, inspired by oftn-bot.

Build Status


  • Supports hubot-auth.
  • @mention support: factoid value will be directed at mentioned user.
  • Customizable prefix
  • Aliases: point a factoid at the value of another factoid.
  • Substitutive editing using sed-like syntax.
  • Factoid history: any time a new value is set on a factoid, the name of the user, current date, previous value and new value are recorded
  • Factoid popularity: currently only visible in the raw data
  • HTTP route to view raw JSON factoid data.


npm install hubot-factoids


HUBOT_BASE_URL [required] - URL of Hubot (ex. http://myhubothost.com:5555/)

HUBOT_FACTOID_PREFIX [optional] - prefix character to use for retrieving a factoid (defaults to ! if unset)


Create/update a factoid

Creates a new factoid if it doesn't exist, or overwrites the factoid value with the new value. Factoids maintain a history (can be viewed via the factoid URL) of all past values along with who updated the value and when.

Note: <factoid> can be any string which does not contain = or =~ (these reserved characters delimit the factoid and its value), although special characters should be avoided.

hubot: learn <factoid> = <details>

Inline editing a factoid

If you prefer, you can edit a factoid value inline, using a sed-like substitution expression.

hubot: learn <factoid> =~ s/expression/replace/gi

hubot: learn <factoid> =~ s/expression/replace/i

hubot: learn <factoid> =~ s/expression/replace/g

hubot: learn <factoid> =~ s/expression/replace/

Set an alias

An alias will point to the specified pre-existing factoid and when invoked will return that factoid's value.

hubot: alias <factoid> = <factoid>

Forget a factoid

Disables responding to a factoid. The factoid is not deleted from memory, and can be re-enabled by setting a new value (its complete history is retained).

hubot: forget <factoid>

Get URL to factoid data

Serves a page with the raw JSON output of the factoid data

hubot: factoids

Recall a factoid value

Recall the value of the given factoid.

Note: Hubot should not be directly addressed.


Can be combined with a @mention to direct the message at another user:

!factoid @user

Hubot will respond accordingly:

Hubot> @user: factoid value

Search for a factoid

Find a factoid containing the given string. The string can be matched in either the factoid key or value.

hubot: search foobar

Drop a factoid

Permanently removes a factoid—this action cannot be undone. If hubot-auth script is loaded, "admin" or "factoids-admin" role is required to perform this action. It's recommended you use the forget command instead of drop.

hubot: drop <factoid>


npm i hubot-factoids

DownloadsWeekly Downloads






Last publish


  • avatar