MyNixOS website logo
Description

Easily-extensible chatbot for Slack messaging service.

Haskbot melds together the Slack slash command and incoming API integrations to create an easily-extensible platform for adding your own custom slash commands with arbitrary responses to your team's Slack service.

Sure, Hubot exists, but when I desire custom chatbot functionality, I'd rather write nice, clean Haskell than clunky Javascript any day of the week.

Haskbot

An easily-extensible, Haskell-based Slack chatbot

The purpose of this little bot is to provide:

  • a slew of mini-services for Bendyworks
  • a simple platform for Bendyworkers to learn Haskell
  • a playground for exciting Haskell web modules, such as WAI, Warp, and Aeson

This README only demonstrates how to setup a Haskell dev environment for creating Haskbot plugins. Further documentation can be found on Hackage.

New to Haskell?

I find enjoyment of Haskell is greatly increased by a thorough reading of the first few chapters of Learn You a Haskell.... Of course, I highly recommend the entire book when you've time.

If you're an in-house Bendyworker, I'm also available before/after hours or during growth time to help or answer any questions.

Installing the Haskell Platform and Haskbot

To run Haskbot locally, all you require is the latest Haskell platform. If your distro of choice isn't Debian, this means your package manager probably provides it for you.

  1. Run the following to install the platform:

    • On Ubuntu

      sudo apt-get update
      sudo apt-get install haskell-platform
      
    • On OSX (via Homebrew)

      brew update
      brew install haskell-platform
      
  2. Add Cabal's (the Haskell package manager) bin folder to your shell's $PATH. This is usually done by adding the following lines to ~/.profile or ~/.bash_profile (whichever you have/prefer).

    PATH="$HOME/.cabal/bin:$PATH"
    export PATH
    

    Make sure to re-source whatever file contains the new $PATH, like so:

    source ~/.profile
    
  3. Update the Haskell packages via:

    cabal update
    cabal install cabal-install
    cabal install haskbot-core
    

Creating Plugins

You're now ready to begin creating plugins for your very own Haskbot! Continue on to Hackage for a full Haskbot API description and examples.

Thanks

I wouldn't have had time to write this without the growth time supplied by Bendyworks. Hey, employers! This is what developers need to survive.

License

See LICENSE.txt.

Metadata

Version

0.1

License

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows