Mayhem is a scripting tool or application formerly developed by Microsoft, which
has now been open sourced and donated to the Outercurve foundation. Mayhem is a
program that helps you to connect anything which is an event to another thing which
is the reaction.
Now, what makes Mayhem so cool is that you can simply select an event and connect
it to a reaction and turn it on, without any code and there you are! An Event
can be an email alert, when someone posts on your Facebook wall, stock or weather
alert, an input from your mobile phone, a speech recognition command and anything
you could dream of. Whereas a Reaction
is what happens when an
event occurs, a reaction can be a phone call, it might be running a program, scheduling
an appointment with a doctor, putting on your tv set, starting your web camera and
the list goes on and on as you could imagine. You are responsible for connecting
an event to a reaction and then turning it on. The beauty of it is that you dont
have to be a programmer or have a computer science degree to do that.
You can download the mayhem application from
and install it, then you are good to go. After the installation,
if you run the application, you should see an interface like this.
You can click on Choose Event
to select any event you want, there
are some basic events that you can choose from as you can see below, if you click
on Choose Reaction
, it will equally bring out a dialog box containing
the list of Reactions.
You can now select any event and associate a reaction to it. If I want to open Safari
any time I pronounce the word "Browser", I will simply select Speech Recognition
from the Event List and type browser into the Listen for Phrase textbox and click
ok and then associate a Reaction to it, by selecting Run Program from the Reaction
List, it will then bring a dialog box prompting me to navigate to where the program
to be run is, in which I will select Safari application file from Safari folder
in Program file folder. And the last thing to do is to put it on and that is it.
Anytime I pronounced the word browser my system will open up Safari.
The coolest thing about Mayhem is that you can extend it, you as a programmer or
developer can write your own reaction or event and deploy it as a module into your
Mayhem installation, and if your module is good enough and you want others to use
it, you can submit it to the Outercurve foundation for review and acceptance.
Would it not be nice if I want to go out and simply tell my computer system to hibernate,
without me touching it? I would demonstrate the power of Mayhem by writing a Reaction
that will hibernate the system, so that anytime I say "hibernate", my
computer will hibernate.
Before you can starting writing modules for Mayhem, you need to setup visual studio,
if you have not installed Nuget, you need to do that, this article here
will show you how to install Nuget.
After Nuget installation has been done, you need to install Mayhem packages and
this can be done by Selecting Library Package Manager
menu in visual studio and then select Package Manager
, in the dialog box that will be displayed, click on Package
, now type Mayhem Package in the name textbox and type http://makemayhem.com/nuget
in the source
textbox and click ok.
Create a new C# class library project and give it the name Mayhem.Hibernator or
any name you like. In the project's solution explorer, right click References
and select Manage Nuget Package
. This will bring a new dialog box,
click the Online
tab and select Mayhem Packages
this will bring a number of Mayhem packages, select and install MayhemCore.
Add a new class to the class library project and name it Hibernator
You need to add reference to MayhemCore so as to be able to access the Mayhem base
classes and other functionalities. Since the module will be a reaction, the class
must extend ReactionBase
class so that the Perform
method can be overriden. The class must be decorated with the DataContract
attribute which is found in System.Runtime.Serialization namespace and MayhemModule
attribute contained in MayhemCore. The MayhemModule attribute has two parameters;
the name and description of the reaction.
[MayhemModule("Hibernator", "this reaction hibernates the system")]
public class Hibernator : ReactionBase
public override void Perform()
The code that will be executed when the reaction is called will be placed in the
Perform method, after the code has been written, you can now build the class library
project. The output of the class library project which is a dll file can now be
copied and placed in "C:\Program
" depending on
where your Mayhem installation is. Restart Mayhem application and click Choose Reaction,
you will see the that Hibernator has been added to the Reaction list.
You can now connect any Event of your choice to this Reaction, in this case I associate
a Speech Recognition Event with the Reaction so that anytime I say hibernate, the
system will hibernate itself.
This is a simple demonstration of Mayhem, you can use Mayhem to do virtually anything
you can dream of !!!