Domo allows you to write your own modules that can be loaded on runtime without having to restart your Domo instance.

There's also a number of existing plugins out there like domo-imdb and domo-url

Modules can be loaded with the built-in !load <moduleName> command and stopped with !stop <moduleName>. Module's code is refreshed every time it's loaded so hotswapping module code is possible. Both of these commands require domo.basicRoutes().

If you are looking for an example module, take a look at domo-imdb.

Creating your own module

Modules can be constructed in a number of different ways. If module exports a property named "routes", Domo will automatically register those routes and destroy them when the module is stopped. The routes property can be either an object with path:handler pairs (Example 1) or an array of routes (Example 2).