Fork me on GitHub

twitterspy by dustin

Click here to lend your support to: twitterspy and
           make a donation at ! TwitterSpy is a supplemental XMPP bot for twitter that does the stuff the twitter one used to do, and a few things it didn't.


zip tar



  1. Install dependencies
  2. git submodule init && git submodule update
  3. copy twitterspy.conf.sample to twitterspy.conf
  4. edit twitterspy.conf

DB Setup

There are a couple database options. Some basic instructions follow:


My twitterspy instance runs on couchdb. Setup is pretty straightforward. Grab a version of couchdb and edit twitterspy.conf to look like this:

type: couch
host: localhost

localhost should obviously be replaced with the location of your couchdb server.

After configuring up the db, run the following command to create your database:



If you’d like to use sqlite instead of couchdb for a more simple install, you can configure twitterspy.conf thusly:

type: sql
driver: sqlite3
args: ['/path/to/twitterspy.sqlite3']

This would theoretically work with another SQL-based database, but it’s only been tested in sqlite and there are most certainly bugs.

To bootstrap your schema, run the following command:

sqlite3 /path/to/twitterspy.sqlite3 < etc/schema.sql


Foreground execution:

twistd -ny twitterspy.tac

Background execution:

twistd -y twitterspy.tac

Do note that this service expects memcached to be running on localhost on whatever machine is running the bot. memcached is used for optimistic message deduplication, but is required for operation. The errors you get when memcached is not running are currently a bit weird (something about ‘NoneType’ object has no attribute ‘add’).

Help from Others

David Banes was kind enough to write an article about his adventures in getting twitterspy running on debian.





Dustin Sallings (


You can download this project in either zip or tar formats.

You can also clone the project with git by running:

$ git clone git://
$ cd twitterspy
$ git submodule init
$ git submodule update