Repolode
conversejs

conversejs/converse.js

A browser-based XMPP chat client that runs entirely client-side, usable as a standalone app or embedded in existing websites.

Stars
3,300
Forks
834
Open issues
231
Last commit
12 hours ago

What is it?

Converse is a web chat client for the XMPP (Jabber) protocol. It runs entirely in the browser with no server-side component of its own, connecting directly to an XMPP server. It can be used as a full-page app, as overlay chat boxes on top of a website, or as an embedded chat component placed into a specific element of a page.

The client covers one-to-one and group chat, along with message corrections, reactions, replies, retractions, and URL previews. It supports OMEMO end-to-end encryption, HTTP file upload, and a large set of XMPP extensions (XEPs). Known integrations include Prosody, ejabberd, and Openfire, as well as WordPress, Roundcube, and Elgg.

The app is extensible through a plugin architecture and is translated into more than 40 languages. It also offers a desktop build through Converse Desktop and Converse Tauri.

Key features

  • 01Overlay, full-page, and embedded display modes
  • 02OMEMO end-to-end encryption
  • 03Group chat with message corrections, reactions, and replies
  • 04HTTP file upload and desktop notifications
  • 05Plugin architecture and translations into 40+ languages

Use cases

  • Adding a live chat widget to an existing website
  • Running a self-hosted team chat on an XMPP server such as Prosody or ejabberd
  • Offering a browser-based XMPP client to users without installing software

Quick start

  1. 1

    Clone the repository

    git clone git@github.com:conversejs/converse.js.git
  2. 2

    Enter the project directory

    cd converse.js
  3. 3

    Install dependencies

    npm install
  4. 4

    Build and serve locally, then open http://localhost:8008/dev.html

    npm run build && npm run serve -- -p 8008

Things to know

  • Self-hosting requires cloning the repo and building with Node.js tooling.
  • Needs an existing XMPP server account to log in to chat.

In collections

Topics

FAQ

What is converse.js?
A browser-based XMPP chat client that runs entirely client-side, usable as a standalone app or embedded in existing websites. Converse is a web chat client for the XMPP (Jabber) protocol. It runs entirely in the browser with no server-side component of its own, connecting directly to an XMPP server. It can be used as a full-page app, as overlay chat boxes on top of a website, or as an embedded chat component placed into a specific element of a page.
Is converse.js free to use? What license does it have?
converse.js is open source under the MPL-2.0 license. Check the license terms before using it in commercial products.
Is converse.js still maintained?
Actively maintained. The last commit to converse.js was on Oct 24, 2026.
What can I use converse.js for?
Adding a live chat widget to an existing website Running a self-hosted team chat on an XMPP server such as Prosody or ejabberd Offering a browser-based XMPP client to users without installing software
How do I install converse.js?
Clone the repository: git clone git@github.com:conversejs/converse.js.git Enter the project directory: cd converse.js Install dependencies: npm install Build and serve locally, then open http://localhost:8008/dev.html: npm run build && npm run serve -- -p 8008
Where can I get converse.js?
The source code and installation instructions are on GitHub: https://github.com/conversejs/converse.js

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects