This repository has been archived by the owner. It is now read-only. webrtc capable xmpp client <3
Switch branches/tags
Clone or download
Latest commit 6eaeead Jul 27, 2016
Type Name Latest commit message Commit time
Failed to load latest commit information.
clientapp update templates.js Jul 14, 2016
config add prop 'host' for hostmeta Jul 1, 2016
public Update oauthLogin.js Mar 7, 2014
views remove unknown font Jul 1, 2016
.gitignore initial commit Jun 3, 2013
.jshintignore Merge branch 'master' into video Oct 15, 2013
.jshintrc Refactor all the things Aug 30, 2013
LICENSE Add license Dec 18, 2013 Add a link to new repo Sep 15, 2014
nodemon.json add nodemon config Jul 14, 2016
package.json fix order Jul 15, 2016
server.js use template for main page Jul 15, 2016


Note: See also for more code

What is it?

Otalk is an open source chat client powered by XMPP,, and WebRTC. You can think of it as an open source alternative to Skype.

While we have a version hosted at, you can still run your own private instance.


git clone
cd otalk
npm install
node server

You can also run your own XMPP server.

Note: If you're running your own XMPP server, and aren't using something like HAProxy to terminate SSL, then you might get errors in certain browsers trying to establish a WebSocket connection because the XMPP server is requesting an optional client certificate which makes the browser terminate the socket. To resolve that, visit the XMPP over Websocket URL directly (eg, for Prosody) so that a client cert choice can be made. After that, the Otalk client should connect fine.

What's included?

Otalk comes with support for:

Message History Syncing

Using Message Archive Management (MAM, XEP-0313), your conversations can be archived by your server and pulled down by the Otalk client on demand.

Active Chat Syncing

Ever used multiple IM clients at once, or swapped clients, and end up with disjointed conversations? Using Message Carbons (XEP-0280) all of your active conversations will be synced to your Otalk client (and vice versa if you other clients support carbons too).

Reliable Connections

Sometimes you just lose your Internet connection, but with Stream Mangagement XEP-0198 your current session can be instantly resumed and caught up once you regain connection. Your messages will show as gray until they've been confirmed as received by your server.

Message Correction

Made a typo in a message? Using Message Correction XEP-0308 you can just double tap the up arrow to edit and send a corrected version. In other clients that support correction, your last message will be updated in place and marked as edited.

Timezone Indications

Working with someone in a different timezone? If the other person is using Otalk or another client that supports Entity Time (XEP-0202) you'll see a reminder that they're 9 hours away where it's 4am and they're not likely to respond.

Voice and Video