A powerful, expressive chatops
platform written in Clojure.

Get started ↠

Unix-style pipes allow tremendous expressiveness in chaining together complex and flexible commands.

!echo world | echo hello
Sub-expressions let you embed the output of one command into an outer command. They can be nested as many levels deep as you can imagine.
!wolfram $(weather seattle | data $.temp) Celcius to Fahrenheit
Aliases let you parameterize complex expressions and give them a name allowing your team to quickly build up idiomatic team-specific Yetibot usages (not just memes!).
!alias randletter = "range 65 91 | xargs echo | random | js String.fromCharCode(%s)"
Observers let Yetibot respond to user events with regex matching on messages and reactions as well as events like leaving and entering a room.
!obs -e enter = meme sparta: welcome / this is Yetibot chat
Scrapers let Yetibot scrape from web sites and parse HTML or JSON into data structures that can be deeply queried with JSON Path syntax. These combine nicely with aliases!
!json https://api.coinbase.com/v2/prices/BTC-USD/spot | json path $.data.amount
Cron lets you run any expression on an interval or date at second-level precision.
!cron 0 0 12 * 11 11 * meme grumpy cat: happy birthday yetibot