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).
Try the hosted app at conversejs.org. You can also download and install Converse Desktop or Converse Tauri.
Or set up your own instance:
git clone git@github.com:conversejs/converse.js.git
npm install
npm run build
npm run serve -- -p 8008You can then open http://localhost:8008/dev.html in your browser to access Converse.
See our quickstart guide for more details.
- Main App: Try the full application
- Anonymous Login: Test without creating an account
- Embedded Chat Room: See how to embed a single chat room
Comprehensive documentation is available at conversejs.org/docs/html, including:
- 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
Converse adapts to your needs with multiple display options:
| Mode | Description |
|---|---|
| Fullpage (default) | Functions as a single-page application covering the entire viewport |
| Overlay | Chat boxes appear on top of your website |
| Embedded | Integrates into specific elements in your page's DOM |
Converse implements a wide range of XMPP Extensions (XEPs), making it one of the most protocol-compliant web clients available.
View all supported XEPs (45+)
| XEP | Name | Notes |
|---|---|---|
| RFC-7395 | XMPP Subprotocol for WebSocket | |
| XEP-0004 | Data Forms | |
| XEP-0030 | Service Discovery | |
| XEP-0045 | Multi-user Chat | |
| XEP-0048 | Bookmarks | |
| XEP-0050 | Ad-Hoc Commands | |
| XEP-0054 | VCard-temp | |
| XEP-0059 | Result Set Management | |
| XEP-0060 | Publish-Subscribe | Limited support |
| XEP-0066 | Out of Band Data | |
| XEP-0077 | In-band Registration | |
| XEP-0085 | Chat State Notifications | |
| XEP-0115 | Entity Capabilities | |
| XEP-0124 | BOSH | |
| XEP-0144 | Roster Item Exchange | |
| XEP-0156 | Discovering Alternative XMPP Connection Methods | |
| XEP-0163 | Personal Eventing Protocol | Limited support |
| XEP-0184 | Message Receipt | |
| XEP-0198 | Stream Management | |
| XEP-0199 | XMPP Ping | |
| XEP-0203 | Delayed Delivery | |
| XEP-0206 | XMPP Over BOSH | |
| XEP-0245 | The /me Command | |
| XEP-0249 | Direct MUC Invitations | |
| XEP-0280 | Message Carbons | |
| XEP-0297 | Stanza Forwarding | Limited support |
| XEP-0308 | Last Message Correction | |
| XEP-0313 | Message Archive Management | |
| XEP-0316 | MUC Eventing Protocol | Limited support |
| XEP-0317 | Hats | Limited support |
| XEP-0333 | Chat Markers | Limited support |
| XEP-0352 | Client State Indication | |
| XEP-0357 | Push Notifications | |
| XEP-0359 | Unique and Stable Stanza IDs | |
| XEP-0363 | HTTP File Upload | |
| XEP-0372 | References | |
| XEP-0382 | Spoiler Messages | |
| XEP-0384 | OMEMO Encryption | |
| XEP-0393 | Message Styling | |
| XEP-0422 | Message Fastening | Limited support |
| XEP-0424 | Message Retractions | |
| XEP-0425 | Message Moderation | |
| XEP-0437 | Room Activity Indicators | |
| XEP-0453 | DOAP Usage in XMPP | |
| XEP-0454 | OMEMO Media Sharing |
Converse integrates with popular platforms and frameworks:
| Server | Plugin |
|---|---|
| Openfire | inverse |
| Prosody | mod_conversejs |
| Ejabberd | mod-conversejs |
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.


