GitPedia

Converse.js

Web-based XMPP/Jabber chat written in JavaScript

From conversejs·Updated June 27, 2026·View on GitHub·

[Converse](https://conversejs.org) is a modern, feature-rich and 100% client-side [XMPP](https://xmpp.org) chat app that runs in a web browser. It can be used as a standalone web app or seamlessly integrated into existing websites. The project is written primarily in JavaScript, distributed under the Mozilla Public License 2.0 license, first published in 2012. It has gained significant community traction with 3,267 stars and 828 forks on GitHub. Key topics include: chat, jabber, lit, omemo, xmpp.

Latest release: v14.0.014.0.0 (2026-06-26)
June 26, 2026View Changelog →
<h2 align="center"> <a href="https://conversejs.org" target="_blank" rel="noopener"> <img alt="Converse.js" src="https://github.com/conversejs/converse.js/blob/master/logo/readme.png" width="480"> </a> </h2>

XMPP Chat
CI Tests
Translation status

Converse is a modern, feature-rich and 100% client-side XMPP chat app that runs in a web browser.
It can be used as a standalone web app or seamlessly integrated into existing websites.

Join our chat room (XMPP URL: discuss@conference.conversejs.org).

Quick Start

Try the hosted app at conversejs.org.
You can also download and install Converse Desktop or Converse Tauri.

Or set up your own instance:

bash
git clone git@github.com:conversejs/converse.js.git cd converse.js git clone https://github.com/conversejs/media.git media; // To see images like sponsorship logos npm install npm run build npm run serve -- -p 8008

You can then open http://localhost:8008/dev.html in your browser to access Converse.

See our quickstart guide for more details.

Screenshots

<details> <summary>Click to view screenshots</summary>

Overlay Mode

Screenshot of Converse in overlay mode

Fullpage Mode

Screenshot of Converse in full-page mode

Embedded Mode

Screenshot of Converse in embedded mode

</details>

Live Demos

Documentation

Comprehensive documentation is available at conversejs.org/docs, including:

Key Features

  • Multiple UI Options: Overlay chat boxes, full-page application, or embedded components
  • Rich Messaging: Message styling, corrections, reactions, and URL previews
  • Privacy-Focused: End-to-end encryption with OMEMO
  • User Status: Custom status messages and availability indicators
  • Notifications: Desktop notifications for new messages
  • File Sharing: HTTP File Upload support
  • Extensible: Plugin architecture based on pluggable.js
  • Internationalized: Translated into 40+ languages
  • Anonymous Login: Use without registration (server permitting)
  • Responsive: Works on desktop and mobile devices

Display Modes

Converse adapts to your needs with multiple display options:

ModeDescription
Fullpage (default)Functions as a single-page application covering the entire viewport
OverlayChat boxes appear on top of your website
EmbeddedIntegrates into specific elements in your page's DOM

XMPP Protocol Support

Converse implements a wide range of XMPP Extensions (XEPs), making it one of the most protocol-compliant web clients available.

<details> <summary><strong>View all supported XEPs (45+)</strong></summary>
XEPNameNotes
RFC-7395XMPP Subprotocol for WebSocket
XEP-0004Data Forms
XEP-0030Service Discovery
XEP-0045Multi-user Chat
XEP-0048Bookmarks
XEP-0050Ad-Hoc Commands
XEP-0054VCard-temp
XEP-0059Result Set Management
XEP-0060Publish-SubscribeLimited support
XEP-0066Out of Band Data
XEP-0077In-band Registration
XEP-0085Chat State Notifications
XEP-0115Entity Capabilities
XEP-0124BOSH
XEP-0144Roster Item Exchange
XEP-0156Discovering Alternative XMPP Connection Methods
XEP-0163Personal Eventing ProtocolLimited support
XEP-0184Message Receipt
XEP-0198Stream Management
XEP-0199XMPP Ping
XEP-0203Delayed Delivery
XEP-0206XMPP Over BOSH
XEP-0245The /me Command
XEP-0249Direct MUC Invitations
XEP-0280Message Carbons
XEP-0297Stanza ForwardingLimited support
XEP-0308Last Message Correction
XEP-0313Message Archive Management
XEP-0316MUC Eventing ProtocolLimited support
XEP-0317HatsLimited support
XEP-0333Chat MarkersLimited support
XEP-0352Client State Indication
XEP-0357Push Notifications
XEP-0359Unique and Stable Stanza IDs
XEP-0363HTTP File Upload
XEP-0372References
XEP-0382Spoiler Messages
XEP-0384OMEMO Encryption
XEP-0393Message Styling
XEP-0422Message FasteningLimited support
XEP-0424Message Retractions
XEP-0425Message Moderation
XEP-0437Room Activity Indicators
XEP-0453DOAP Usage in XMPP
XEP-0454OMEMO Media Sharing
XEP-0461Message Replies
</details>

Integration Options

Converse integrates with popular platforms and frameworks:

XMPP Servers

ServerPlugin
Openfireinverse
Prosodymod_conversejs
ejabberdmod_conversejs

Web Frameworks & CMS

PlatformIntegration
Elggplugin
Peertubepeertube-plugin-livechat
PàdéPàdé
Roundcuberoundcube-converse.js-xmpp-plugin
Tiki Wiki CMS Groupwarebuilt-in optional feature
Ubuntu-TouchConverseJS for Ubuntu-Touch
WordPressConverseJS Plugin

LLM and GenAI usage

Large Language Models have been and may be used to assist with Converse's development,
including writing and refactoring code, editing documentation and research.

Converse does not implement its own cryptography. OMEMO end-to-end encryption is
delegated to libomemo.js; see that
project's own LLM and GenAI usage
note for how its security-critical code is verified.

Within Converse, correctness is checked independently of any AI. The test suite
runs in a real browser, and every change, however it was drafted, is reviewed by
a human maintainer who remains responsible for it, exactly as for any third-party
contribution.

Contributing with AI assistance

Using LLMs or coding agents to help write your contribution is allowed. AI is a
legitimate tool, and we won't reject a patch simply because a model helped write
it. But the bar is the same as for any other pull request:

  • Understand what you submit. You are responsible for your contribution. Be
    able to explain how it works and why it's correct.
  • Test it. Your code must build and pass the test suite, and new behaviour
    should come with tests.
  • Disclose it. Note in your pull request that AI tooling was used. This is
    about honesty and giving reviewers context, not stigma.
  • No slop. Unreviewed, untested, auto-generated output thrown over the fence
    will be closed. Volume is not contribution, and reviewing it costs maintainers
    real time.

If you're driving Converse with a coding agent, start with
AGENTS.md, which documents the architecture, conventions and
build/test workflow the project expects.

Support the Project

If you find Converse useful, please consider supporting its development:

Thanks to everyone who has supported this project over the years through donations, testing, bug reports, and code contributions.

Sponsors

<div style="display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: center;"> <a href="https://bairesdev.com/sponsoring-open-source-projects/?utm_source=conversejs" target="_blank" rel="noopener"> <img alt="BairesDev" src="https://raw.githubusercontent.com/conversejs/media/main/logos/BairesDev_logo-orange.png" width="200"> </a> <a href="https://blokt.com?utm_source=conversejs" target="_blank" rel="noopener"> <img alt="Blokt Crypto & Privacy" src="https://raw.githubusercontent.com/conversejs/converse.js/541613d1fea8aef364af00180f60e959162e5e4b/logo/blokt.png" width="200"> </a> <a href="https://www.litslink.com?utm_source=conversejs" target="_blank" rel="noopener"> <img alt="LITSLINK software development" src="https://raw.githubusercontent.com/conversejs/media/main/logos/litslink-light.svg" width="200"> </a> <a href="https://www.keycdn.com?utm_source=conversejs" target="_blank" rel="noopener"> <img alt="KeyCDN" src="https://raw.githubusercontent.com/conversejs/converse.js/541613d1fea8aef364af00180f60e959162e5e4b/logo/keycdn.png" width="200"> </a> </div>

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from conversejs/converse.js via the GitHub API.Last fetched: 6/28/2026