Join 10350+ others. No spamming.
I promise!

Follow us at github.



ndmitchell / shake


Shake build system


Shake Hackage version Stackage version Linux Build Status Windows Build Status

Shake is a tool for writing build systems - an alternative to make, Scons, Ant etc. Shake has been used commercially for over five years, running thousands of builds per day. The website for Shake users is at


  • Why use Shake? Shake lets you write large robust build systems, which deal properly with generated source files and run quickly. If you are writing a custom build system of any moderate size (more than a few rules) you should use Shake. The advantages over other build systems are detailed in the document Why choose Shake?.
  • How do I use Shake? Shake is a Haskell library that you use to define your rules. The Shake manual provides a walk through of a small but realistic example, assuming no Haskell knowledge.
  • Generated documentation for all functions, includes lots of examples.
  • Running Ninja builds using Shake.
  • Blog posts detailing ongoing development work.
  • Profile report demo explaining what the profile reports mean.
  • Academic paper on the underlying principles behind Shake.
  • Video of a talk introducing Shake.

Other links

  • Download the Haskell package from Hackage and install it using Cabal.
  • Mailing list for any questions/bugs/thoughts on Shake. If you need more information and aren't sure where to start, use the mailing list.
  • Questions can be asked on StackOverflow with the tag shake-build-system.
  • Bugs can be reported on the GitHub issue tracker.
  • Source code in a git repo, stored at GitHub.
  • Continuous integration with Travis and Hydra.

Is your company using Shake? Write something public (even just a tweet to @ndm_haskell) and I'll include a link on the website.