Web-based XMPP/Jabber chat client written in JavaScript
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github PR template: Changes.md is not in the docs directory (#1018) Feb 13, 2018
3rdparty Create package @converse/headless Oct 22, 2018
converse-logs Fix transcripts code. Jan 9, 2018
css CSS: properly align section heading and its actions Dec 10, 2018
demo Use bootstrap4 for the Converse website Sep 18, 2018
dist Bugfix. First match for MUC commands Dec 10, 2018
docs New release 4.0.6 Dec 7, 2018
fonts Add website CSS and fonts Jul 6, 2017
locale New release 4.0.6 Dec 7, 2018
logo New sponsor Codefirst Dec 4, 2018
mockup CSS: set groupchat owner badge to groupchat color Dec 10, 2018
sass CSS: properly align section heading and its actions Dec 10, 2018
sounds Add sound file credits Aug 25, 2014
spec Fix failing test Dec 6, 2018
src Bugfix. First match for MUC commands Dec 10, 2018
tests Use async/await Nov 20, 2018
.eslintrc.json Use es2015 modules instead of UMD Oct 23, 2018
.gitignore Add make recipe for building font-awesome.css Nov 12, 2018
.travis.yml Remove `sudo: false` in .travis.yml Nov 20, 2018
CHANGES.md Bugfix. First match for MUC commands Dec 10, 2018
COPYRIGHT New release 4.0.6 Dec 7, 2018
LICENSE Move license to repo root Sep 4, 2017
Makefile Don't include *~ files in zip Dec 11, 2018
Makefile.win Rename builds directory to dist Feb 28, 2016
README.md Update number of translations Nov 15, 2018
RELEASE.md New release 4.0.6 Dec 7, 2018
buildout.cfg Show the sponsors in the sphinx docs Oct 6, 2018
composer.json Add keywords for composer Jan 15, 2017
dev.html Add client info modal showing name and version number Nov 14, 2018
fullscreen.html Use non-minified resources Nov 14, 2018
index.html New sponsor Codefirst Dec 4, 2018
jshintrc Bugfix for headline messages. Mar 28, 2016
jslicenses.html [BUGFIX] html br Sep 10, 2018
lerna.json Store lerna packages in the `src` directory Oct 22, 2018
mobile.html Update mobile.html with newest markup Sep 21, 2018
package-lock.json Updated dependencies Dec 11, 2018
package.json Updated dependencies Dec 11, 2018
redirect.html Add support for logging in with OAuth Jun 13, 2018
requirements.txt Document timeout fix for parsing errors Jul 28, 2018
webpack.config.js Avoid loading all the moment locales Nov 15, 2018



XMPP Chat Travis Bountysource bounties Translation status

Converse is a web based XMPP/Jabber chat client.

You can either use it as a webchat app, or you can integrate it into your own website.

It's 100% client-side JavaScript, HTML and CSS and the only backend required is a modern XMPP server.

Please support this project via Patreon or Liberapay


Converse is hosted and can be used at https://conversejs.org.

A demo showing anonymous login is available at https://conversejs.org/demo/anonymous.html and a demo which shows how you can embed a single chat room into a page is avialable at https://conversejs.org/demo/embedded.html.

Converse in overlay mode

Screenshot of Converse

Converse in fullpage mode

Screenshot of Converse in fullpage mode


The developer/integrator documentation can be found at https://conversejs.org/docs/html.

You'll probably want to begin with the quickstart guide, which shows you how to use the CDN (content delivery network) to quickly get a demo up and running.


  • Available as overlayed chat boxes or as a fullscreen application. See inverse.chat for the fullscreen version.
  • A plugin architecture based on pluggable.js
  • Single-user and group chats
  • Contacts and groups
  • Multi-user chat rooms XEP 45
  • Chatroom bookmarks XEP 48
  • Direct invitations to chat rooms XEP 249
  • vCard support XEP 54
  • Service discovery XEP 30
  • In-band registration XEP 77
  • Roster item exchange XEP 144
  • Chat statuses (online, busy, away, offline)
  • Custom status messages
  • Typing and state notifications XEP 85
  • Desktop notifications
  • File sharing / HTTP File Upload XEP 363
  • Messages appear in all connnected chat clients / Message Carbons XEP 280
  • Third person "/me" messages XEP 245
  • XMPP Ping XEP 199
  • Server-side archiving of messages XEP 313
  • Hidden Messages (aka Spoilers) XEP 382
  • Client state indication XEP 352
  • Last Message Correction XEP 308
  • Off-the-record encryption
  • OMEMO encrypted messaging XEP 384
  • Supports anonymous logins, see the anonymous login demo.
  • Translated into 28 languages

Integration into other frameworks


We use behavior-driven tests written with jasmine.js.

Open tests.html in your browser, and the tests will run automatically.


Converse.js is released under the Mozilla Public License (MPL).


Emoji images are courtesy of Twemoji.


Issues can be logged on the Github issue tracker.


A heartfelt thanks for everyone who has supported this project over the years. Many people have contributed testing, bugfixes, features and corrections.

Recently we have started accepting donations via Patreon and Liberapay.

The following people are making recurring donations:

Additionally this project is supported by

  • KeyCDN
  • Wikisuite