An open distributed tweeting protocol
JavaScript Go CSS
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This project is a few things, see opentweet.png for a diagram

  1. Most importantly, a new internet application layer protocol for fetching tweets. This allows a standard for distributed fetching of tweets from any opentweet server. See opentweet-spec.txt
  2. A reference implementation of that protocol, as a golang package in the protocol/ dir
  3. A basic server to serve the tweets, allows registering and posting over REST.
  4. An HTML5 client, in Chrome app and Cordova app form, for fetching opentweets and posting to a server.
  5. A test client.


Opentweet is not secure, use a throw-away password with any server using this code. Passwords are transmitted in plain text and not hashed on the server.

Getting Started

If you have the ability to run your own server, please do so! The point of the project is de-centralization.

Otherwise, please feel free to use my server

Running your own server

git and docker is needed

git clone
cd opentweet
docker build -t opentweet .
docker run --name mysql_vol mysql echo hello
docker run --name mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d --volumes-from=mysql_vol mysql
docker run --name opentweet -d --link mysql:mysql -p 12315:12315 -p 80:8080 opentweet

Loading the Chrome App

bower is needed

git clone
cd opentweet/client/chromeapp
bower install
  • In Chrome, go to chrome://extensions/
  • Check "Developer mode"
  • Click "Load unpacked extension..."
  • Select "opentweet/client/chromeapp" from where you cloned opentweet

Or, instead of using bower, check the releases and download a zip from after 'bower install'

Some notes on usage. Type the whole server name in your settings: Also, some icons are not showing up for me. Click around the bottom and top right to find all the tabs/pages.

Registering and posting tweets with Curl

curl -i -d '{"user":"me","password":"secret"}'
curl -i -d '{"tweet":"Hello Opentweet!!"}'

Building and using the golang test client

setup a go environment

go get
go install
$GOHOME/bin/test-client jeff

List of known servers

People to follow

Please submit PRs for servers / people