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: [email protected]).
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 [email protected]:conversejs/converse.js.git
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.
- 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.