An AI-powered, 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
Gemini Image Generation (banana) lets you dynamically generate amazing images from natural language prompts, or pipe other command outputs into it to create memes and visual content on the fly.
!banana sanic impatient
Autonomous AI Agent allows you to ask codebase-aware questions or direct natural language development tasks. Yetibot handles cloning, editing, running commands, and pushing changes via git end-to-end.
!agent how does yetibot's cron feature work?