Web-based XMPP/Jabber chat client written in JavaScript
JavaScript CSS HTML Other
Failed to load latest commit information.
.github PR template: Changes.md is not in the docs directory (#1018) Feb 13, 2018
3rdparty Various changes. See below. Oct 31, 2017
converse-logs Fix transcripts code. Jan 9, 2018
css Hide resize handle for both private and group chats Aug 10, 2018
demo Add message edit icons to mockups Jul 19, 2018
dist Cancel message correction by pressing escape. Aug 10, 2018
docs Add missing index.rst to integrate JSDoc API into sphinx Aug 3, 2018
fonticons Make more semantic by putting login/register column info in css Mar 7, 2018
fonts Add website CSS and fonts Jul 6, 2017
locale Updated JSON translation files Aug 3, 2018
logo Add new sponsor and some website style improvements May 24, 2018
mockup More code reuse between chatboxview and chatroomview Aug 7, 2018
sass Hide resize handle for both private and group chats Aug 10, 2018
sounds Add sound file credits Aug 25, 2014
spec Bugfix. Existing occupants weren't found because query was only by jid Aug 9, 2018
src Set proper content type for file upload Aug 14, 2018
tests Bugfix. Existing occupants weren't found because query was only by jid Aug 9, 2018
.eslintrc.json Cancel message correction by pressing the down arrow Jul 8, 2018
.gitignore Add the ability to make different kinds of builds Jun 4, 2018
.travis.yml Re-add `xhr_user_search_url` and autocomplete when adding contacts Mar 30, 2018
CHANGES.md Fixes #1143 Disallow sending of empty messages Aug 1, 2018
COPYRIGHT Release 3.3.4 Mar 5, 2018
Gemfile Some work on bundling bootstrap within the css files. Jan 25, 2018
Gemfile.lock Some work on bundling bootstrap within the css files. Jan 25, 2018
LICENSE Move license to repo root Sep 4, 2017
Makefile Add jsdoc docstrings to `chats` API. Aug 1, 2018
Makefile.win Rename builds directory to dist Feb 28, 2016
README.md Fix some more links to use HTTPS. (#1136) Jul 21, 2018
RELEASE.md Update release steps Feb 2, 2017
buildout.cfg Update out of date docs concerning locales Jun 1, 2018
composer.json Add keywords for composer Jan 15, 2017
dev.html Proper MUC reconnection is handled in converse-muc-views Jun 5, 2018
fullscreen.html fixes #1091 May 24, 2018
index.html Fix some more links to use HTTPS. (#1136) Jul 21, 2018
jshintrc Bugfix for headline messages. Mar 28, 2016
jslicenses.html Update licenses page Feb 21, 2018
mobile.html LibreJS support (#1001) Feb 21, 2018
package-lock.json (WIP) Wait for promises before opening chats in API methods Aug 1, 2018
package.json Bump bootstrap.native Jul 30, 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 Fix linting errors Jun 7, 2018



XMPP Chat Travis Bountysource bounties Translation status

Converse.js is a web based XMPP/Jabber instant messaging client.

It enables you to add chat functionality to your website, independent of any specific backend. You will however need an XMPP server to connect to, either your own, or a public one.

Please support this project via Patreon or Liberapay


Converse.js 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.js: As seen on the conversejs.org website

Screenshot of Converse

inVerse: a fullscreen version of converse.js

Converse.js is also available in a fullscreen version, hosted at inverse.chat

Screenshot of Converse in fullscreen 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.


  • A plugin architecture based on pluggable.js
  • Single-user and group chats
  • Contacts and groups
  • Multi-user chat rooms XEP 45
  • Direct invitations to chat rooms XEP 249
  • vCard support XEP 54
  • Service discovery XEP 30
  • In-band registration XEP 77
  • Chat room bookmarks XEP 48
  • Roster item exchange XEP 144
  • Chat statuses (online, busy, away, offline)
  • Custom status messages
  • Desktop notifications
  • Typing and state notifications XEP 85
  • Messages appear in all connnected chat clients 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
  • Translated into 16 languages

Integration into other frameworks


Note: These screencasts are already quite old! Converse.js has grown and evolved further since then.


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).


For support queries and discussions, please join the mailing list: conversejs@librelist.com

Also take a look at the mailing list archives.

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