Quickstart
Chat now
Section titled “Chat now”Start chatting immediately at chat.conversejs.org.
Log in with any existing XMPP account, or create a new one via the registration form.
Host your own instance
Section titled “Host your own instance”To run your own instance, follow the steps below. You’ll need:
- An XMPP server (or an account on a public server like conversations.im or jabber.de)
- A web server (or just a local HTML file for testing)
Step 1: Get the files
Section titled “Step 1: Get the files”Fastest: Use the CDN
Section titled “Fastest: Use the CDN”Add these lines to your HTML <head>:
<link rel="stylesheet" href="https://cdn.conversejs.org/dist/converse.min.css"><script src="https://cdn.conversejs.org/dist/converse.min.js"></script>You can also pin to a specific version:
<link rel="stylesheet" href="https://cdn.conversejs.org/12.0.0/dist/converse.min.css"><script src="https://cdn.conversejs.org/12.0.0/dist/converse.min.js"></script>Alternative: Self-host
Section titled “Alternative: Self-host”If you prefer to host the files yourself, either:
- Download the latest release archive and extract the
dist/folder, or - Build from source — see Generating Builds
Already run an XMPP server?
Section titled “Already run an XMPP server?”Many servers have built-in plugins that serve Converse for you:
- Openfire: inverse plugin
- Prosody: mod_conversejs
- ejabberd: mod_conversejs
Check your server’s documentation — this is often the easiest path.
Step 2: Initialize Converse
Section titled “Step 2: Initialize Converse”Add this before your closing </body> tag:
<script> converse.initialize({ // Replace with your XMPP server's BOSH or WebSocket URL bosh_service_url: 'https://your-xmpp-server:5280/bosh', // Or use WebSocket: // websocket_url: 'wss://your-xmpp-server:5280/ws', });</script>Complete minimal example
Section titled “Complete minimal example”<!DOCTYPE html><html><head> <title>My Chat</title> <link rel="stylesheet" href="https://cdn.conversejs.org/12.0.0/dist/converse.min.css"> <script src="https://cdn.conversejs.org/12.0.0/dist/converse.min.js"></script></head><body> <script> converse.initialize({ bosh_service_url: 'https://conversejs.org/http-bind/', }); </script></body></html>Save this as index.html and open it in your browser. You’ll see a login screen where you can enter any XMPP account.
Step 3: Choose your display mode
Section titled “Step 3: Choose your display mode”Converse supports three layouts:
| Mode | Description | Best for |
|---|---|---|
fullscreen | Chat fills the entire page | Standalone chat apps |
overlay | Chat floats in a corner, toggleable | Adding chat to an existing site |
embedded | Chat lives inside a specific <div> | Custom page layouts |
converse.initialize({ view_mode: 'fullscreen', // or 'overlay' or 'embedded'});See the live demos for examples of each mode.
What’s next?
Section titled “What’s next?”- Configuration — All available options for
converse.initialize() - Session Management — Auto-login users who are already authenticated on your site
- Features — File sharing, OMEMO encryption, group chats, and more
- Setup and Integration — Production deployment guide with server-side auth
Thank you to our sponsors
If you'd like to sponsor this project, please visit Github, Patreon, Liberapay or contact us.