The fast and fun way to write bots

Latest on Hackage:

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

BSD3 licensed by Hao Lian
Maintained by

Who let you in here?

Relax! I'm here to make your life easier. Has your company ever switched to using Slack, and then you wanted to write silly Slack bots in Haskell as a way to learn Haskell?

Really?WowThat was a pretty specific question.

Uh, do you want to be friends? Well let's talk about it later, because right now I have an example for you.

But you'll have to grab me first:

  • cabal sandbox init
  • cabal install linklater

If you don't have Haskell, it's quite easy: Windows, Mac, and Linux.

Show me an example!

  • jpgtobot is a slackbot that pastes the image at into chat. It even supports jpgto's flags: so -- r+gif will give you a GIF, randomly selected from all known images named foo. Thanks to the magic of -screen scraping-.

    jpgtobot in action

  • hi5bot lets you high-five people. There are other amazing things it can do too.


  • Uses Text for state-of-the-art Unicode support;
  • Lovely documentation with no misspelllllings to be found;
  • Supports [Slack's formatting syntax]( Slack's formatting syntax)
  • Comes with a fast mode (slashSimple) and a power mode (slash)
  • A warm, receptive maintainer with beautiful brown eyes;
  • Fully Haddock'd methods and module;
  • Open source (BSD3).


  • Hao Lian, author;
  • Ulysses Popple; and
  • Ian Henry, who showed me the flip (+) foo -> (+ foo) trick;
  • Shields (the Grizzly Bear album), which I listened all the way through for the first time while I was writing this ★★★★.

See also

  • tightrope, a library Ian should really document


-*- markdown -*-

## 2015-07-21 3.2.0

* seems to have broken GET incoming hooks, so we're switching to POST
* Support for Stack
* Unconstrained dependencies

## 2015-04-01 3.1.0

* Removed: silly usage of GADTs
* Simpler: incoming hook tokens are now incoming hook URLs
* Corgi picture: made bigger
* Added: Command now carries the name of the command
* Patch by Ulysses Popple
* Text: stricter!
* I decided to make the library take strict texts only,
as they are simpler to reason about and lead to fewer
conversions: really only WAI vends lazy text
* Sorry for the churn!

## 2014-07-27 2.0.0

* Documentation improved with links
* jpgtobot code shortened due to market forces
* slashSimple
* FormattedMessage

## 2014-07-23 1.0.0

* Initial release
* slash and run
* Command, Channel, User, Message, Icon
comments powered byDisqus