No description, website, or topics provided.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Malkavianizer is an e-book style Twitter account bot. It's not exactly horse_ebooks as it uses Markov chains to generate the random text, but that works well enough. I like how random it can be.

The program was written for my entertainment and therefore isn't all that user friendly, but I will try to explain how to set up and use it.

Requires: Node.js and Grunt.


First, install Node.js.

Next, install Grunt.

Once installed, then issue this command in the Malkavianizer directory:

npm install

This will install the Node modules required to run the program.


In the config directory, create a file called settings.json. It should contain something like this:

  "twitterEbookUsername": "mybotaccount",
  "twitterSourceUsers": [ "account1", "account2", ... ],
  "postFrequency": "every day at midnight"

The options and what they do should be obvious. You can source multiple users, but these users must approve Malkavianizer's request to access their Tweets. (ie: Only user accounts you own.)

postFrequency is natural description of when to post new Tweets. Currently "every" and "at" are recognized. Some common phrases:

at midnight
every 30 minutes
every 2 hours
every 36 hours at 4:00pm
every day at 24:00
every day at noon

Next, create another file called twitterAuth.json. (Also in the config directory.) Go to Twitter's Apps Manager while logged in as your Ebook account and register the Malkavianizer application. Once you've done this, get the Consumer Key (aka API key) and the Consumer Secret (aka API Secret) and make sure it has read/write access to this account.

In the twitterAuth.json file, add these two keys:

  "consumerKey": "yourconsumerkey",
  "consumerKeySecret": "yourconsumersecretkey"

After that, you should be good to register your Twitter accounts with this application.

Everything under the datastore directory is temporary program storage. You can erase everything in this directory to reset the program's state. Note: You will need to re-register the accounts if you delete twitterAccess.json.

Initial run

Once you've set up the config files, you first need to get permissions for accessing the respective Twitter accounts.


grunt register register the accounts. Follow the instructions given to grant permissions for Malkavianizer to post on your behalf or read your Tweets.

Once you are done, then run

grunt retrieve retrieve your current Tweets.

You can then run

grunt process

...and this will turn your Tweets into a series of Markov chains.

At this point, you are ready to run the program normally.

Running Malkavianizer

To run the program, just do

grunt schedule

Malkavianizer will then wait until it's time to post a Tweet and then do so. You can manually post a Tweet using:

grunt post

And that's it!