Build Status Clojars Codecov Deps

Core Yetibot utilities, extracted for shared use among Yetibot and its various plugins. yetibot.core is not meant to be run standalone, but instead used as a dependency from another project that provides config and optionally other Yetibot plugins, private or public.

The majority of Yetibot commands live in the main Yetibot repo.


You can depend on this library to build your own Yetibot plugins. Building your own commands is dead simple. Here's an example command that adds two numbers:

(ns mycompany.plugins.commands.add
  (:require [yetibot.core.hooks :refer [cmd-hook]]))

(defn add-cmd
  "add <number1> <number2> # Add two numbers"
  [{[_ n1 n2] :match}] (+ (read-string n1) (read-string n2)))

(cmd-hook #"add" ; command prefix
          #"(\d+)\s+(\d+)" add-cmd)

See Yetibot's own commands for more complex and diverse examples.

Dev postgres

To quickly provision a postgresql database to work against, run:

docker-compose up -d

And use the corresponding connection string in config:

:yetibot-db-url "postgresql://yetibot:yetibot@postgres:5432/yetibot"

Remote REPL

Yetibot runs an embedded nREPL server on port 65432. Connect to it via:


Or replace localhost with the remote network address.


yetibot-dashboard is an NPM module that contains static HTML/JS/CSS for the Yetibot dashboard. It's served by yetibot.core's Ring server. A public example can be seen at

To update to the latest version run:


This downloads the lateset yetibot-dashboard from NPM, extracts it, copies the build into resources/public then creates a git commit with the changes.


Change Log



Copyright © 2013–2019 Trevor C. Hartman

Distributed under the Eclipse Public License version 1.0.