- JavaScript 93.5%
- SCSS 4.9%
- HTML 0.7%
- TypeScript 0.7%
- Makefile 0.2%
| .github | ||
| 3rdparty | ||
| demo | ||
| docs/source | ||
| images | ||
| logo | ||
| rspack | ||
| scripts | ||
| sounds | ||
| src | ||
| .aiderignore | ||
| .gitignore | ||
| .nvmrc | ||
| .prettierrc | ||
| AGENTS.md | ||
| CHANGES.md | ||
| composer.json | ||
| CONTRIBUTING.md | ||
| conversejs.doap | ||
| COPYRIGHT | ||
| dev.esm.html | ||
| dev.html | ||
| eslint.config.mjs | ||
| fullscreen.html | ||
| index.html | ||
| jshintrc | ||
| karma.conf.js | ||
| LICENSE | ||
| local.html | ||
| Makefile | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| README.md | ||
| RELEASE.md | ||
| requirements.txt | ||
| tsconfig.json | ||
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:
git clone git@github.com: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.
Screenshots
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.
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 | |
| XEP-0461 | Message Replies |
Integration Options
Converse integrates with popular platforms and frameworks:
XMPP Servers
| Server | Plugin |
|---|---|
| Openfire | inverse |
| Prosody | mod_conversejs |
| ejabberd | mod_conversejs |
Web Frameworks & CMS
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.


