Getting Started


Using modubot.js-cli
npm install -g modubot.js-cli
modubot new bot-name
  1. Clone the git repo
    git clone
    cd Modubot.js
  2. Install the grunt-cli package
    npm install -g grunt-cli
  3. Install Modubot's dependencies
    npm install
  4. Run grunt


The default configuration can be found in config/default.config.yml in YAML format. To get started, run Modubot. It should copy the default config file to config/config.yml and exit.

npm start

Once you've done that, open config/config.yml in your favorite editor and edit the config to suit your needs. If you want an option to use the default value, delete it from the file. config/config.yml overwrites config/default.config.yml -- if an option does not exist in config/config.yml, Modubot will try to look it up in config/default.config.yml.


Here's an annotated configuration file:

  host: ircserver # The hostname you want your bot to connect to.
  port: 6667 # The port the desired IRC server runs on.
  secure: false # Use SSL to connect?
  selfSigned: false # Should the bot connect to the IRC server even if the certificate is untrusted (self signed)?
  password: "" # Used for SASL authentication. Only used when sasl is set to true.
  sasl: false # Use SASL authentication
  nick: Modubot # The IRC nickname your bot should use.
  username: Modubot # The IRC username to connect with.
  realname: Modubot # The real name for the bot (shown on /whois).
  channels: ["#channel", "#another"] A list of channels the bot should connect to.
  command: . # The command prefix, e.g. ".ping".
  debug: true # Enable/disable debug mode.
  admins: [] # A list of bot admins (not yet implemented).
  - kamaln7/ping # A list of plugins to load. Plugins found in src/plugins/
  mongodb: mongodb://hostname/database # The MongoDB connection string.


To run the bot, run:

npm start

Make sure you run


after every update/git pull.

You can run the bot however you want: in a screen session, tmux, forever, pm2, supervisord, anything. As long as it runs bin/Modubot.js in the context/cwd of the root directory, you should be fine.