converse.js
v12.0.0
Published
Browser based XMPP chat client
Maintainers
Readme
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]).
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:
git clone [email protected]: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.
Screenshots
Overlay Mode

Fullpage Mode

Embedded Mode

Live Demos
- Main App: Try the full application
- Anonymous Login: Test without creating an account
- Embedded Chat Room: See how to embed a single chat room
Documentation
Comprehensive documentation is available at conversejs.org/docs/html, 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:
| 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 |
XMPP Protocol Support
Converse implements a wide range of XMPP Extensions (XEPs), making it one of the most protocol-compliant web clients available.
| 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 | |
Integration Options
Converse integrates with popular platforms and frameworks:
XMPP Servers
| Server | Plugin | |--------|--------| | Openfire | inverse | | Prosody | mod_conversejs | | Ejabberd | mod-conversejs |
Web Frameworks & CMS
| Platform | Integration | |----------|-------------| | Elgg | plugin | | Peertube | peertube-plugin-livechat | | Pàdé | Pàdé | | Roundcube | roundcube-converse.js-xmpp-plugin | | Tiki Wiki CMS Groupware | built-in optional feature | | Ubuntu-Touch | ConverseJS for Ubuntu-Touch | | WordPress | ConverseJS Plugin |
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.
