werewolf-slack: A Slack chat client for playing werewolf

[ bsd3, game, program ] [ Propose Tags ]

The game engine is based off of the party game Mafia, also known as Werewolf.

[Skip to Readme]
Versions [faq],,,,,,,,,,,,,,,
Change log CHANGELOG.md
Dependencies aeson (>=0.8 && <0.12), base (>=4.8 && <5), bytestring (==0.10.*), extra (==1.4.*), http-client (==0.4.*), http-client-tls (==0.2.*), http-types (==0.9.*), mtl (==2.2.*), optparse-applicative (==0.12.*), process (==1.2.*), text (==1.2.*), wai (==3.2.*), warp (==3.2.*), werewolf (==0.4.*) [details]
License BSD-3-Clause
Author Henry J. Wylde
Maintainer public@hjwylde.com
Category Game
Home page https://github.com/hjwylde/werewolf-slack
Source repo head: git clone git@github.com:hjwylde/werewolf-slack
Uploaded by hjwylde at Sat Apr 2 03:04:58 UTC 2016
Distributions NixOS:
Executables werewolf-slack
Downloads 5192 total (216 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
Last success reported on 2016-04-02 [all 4 reports]


Maintainer's Corner

For package maintainers and hackage trustees

Readme for werewolf-slack-

[back to package description]


Project Status: Wip - Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. Build Status Release

A chat interface for playing werewolf in Slack. The game engine is based off of the party game Mafia, also known as Werewolf. See the Wikipedia article for a rundown on it's gameplay and history.

Game description

Long has the woods been home to wild creatures, both kind and cruel. Most have faces and are known to the inhabitants of Fougères in Brittany, France; but no-one from the village has yet to lay eyes on the merciless Werewolf.

Each night Werewolves attack the village and devour the innocent. For centuries no one knew how to fight this scourge, however recently a theory has taken ahold that mayhaps the Werewolves walk among the Villagers themselves...

Objective of the Game:
For the Loners: complete their own objective.
For the Villagers: lynch all of the Werewolves.
For the Werewolves: devour all of the Villagers.


Preparing Slack

Set up an Incoming WebHook here. Make note of the access token, we'll be using that soon.

Set up a Slash Command (/werewolf or similar) here. The Slash Command should perform a GET request to the server werewolf-slack is going to be hosted on. Make note of the validation token here too.


Installing werewolf-slack is easiest done using either Docker (recommended), stack or Cabal.

Using Docker:

docker pull hjwylde/werewolf-slack

Using stack:

stack install werewolf-slack werewolf
export PATH=$PATH:~/.local/bin

Using Cabal:

cabal-install werewolf-slack werewolf
export PATH=$PATH:~/.cabal/bin


werewolf-slack is a simple web server that listens for events from the Slack Slash Command. After receiving an event werewolf-slack forwards it on to the werewolf game engine and uses the Incoming WebHook to send back the response.

Running werewolf-slack is easiest done using either Docker (recommended) or the binary itself. Make sure to add rules to your firewall for werewolf-slack's port.

With Docker:

docker run -d -p 80:8080 hjwylde/werewolf-slack -t ACCESS_TOKEN -v VALIDATION_TOKEN

With werewolf-slack:

werewolf-slack -p 80 -t ACCESS_TOKEN -v VALIDATION_TOKEN &


It is possible to also configure the channel to play werewolf in and the port that werewolf-slack listens on. This is done via the --channel-name (-c) and --port (-p) options respectively.

By default the channel name is werewolf and port 8080.


Type /werewolf help in your Slack channel to get going!