Federated blogging and chat platform that serves as a web frontend for the XMPP protocol.
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
Clone the repository
git clone git@github.com:conversejs/converse.js.git - 2
Enter the project directory
cd converse.js - 3
Install dependencies
npm install - 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
A free, open source instant messaging and VoIP chat app for friends, groups and communities, with desktop, mobile and browser clients.
Self-hosted team chat running on Cloudflare Workers, with realtime messaging, a two-way Telegram bridge, and server-side encrypted messages and files.
SDK monorepo for Ethora, a chat and messaging platform with React, React Native, Android, iOS and WordPress SDKs plus AI bot and MCP tooling.
Open-source instant messaging server in Go that developers integrate into their own apps, with SDK, REST API and webhooks.
Go backend for OCTO, an open workplace where humans and AI agents collaborate, with REST and WebSocket APIs and WuKongIM-based real-time messaging.