랭킹으로 돌아가기

conversejs/converse.js

JavaScriptconversejs.org

Web-based XMPP/Jabber chat written in JavaScript

xmppxmpp-clientjabberchatomemolit
스타 성장
스타
3.3k
포크
832
주간 성장
이슈
198
1k2k3k
2023년 1월2024년 3월2025년 5월2026년 7월
아티팩트npmnpm install converse.js
README

Converse.js

XMPP Chat CI Tests Translation status

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
cd converse.js
git clone https://github.com/conversejs/media.git media; // To see images like sponsorship logos
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

Click to view screenshots

Overlay Mode

Screenshot of Converse in overlay mode

Fullpage Mode

Screenshot of Converse in full-page mode

Embedded Mode

Screenshot of Converse in embedded mode

Live Demos

Documentation

Comprehensive documentation is available at conversejs.org/docs, 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

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

LLM and GenAI usage

Large Language Models have been and may be used to assist with Converse's development, including writing and refactoring code, editing documentation and research.

Converse does not implement its own cryptography. OMEMO end-to-end encryption is delegated to libomemo.js; see that project's own LLM and GenAI usage note for how its security-critical code is verified.

Within Converse, correctness is checked independently of any AI. The test suite runs in a real browser, and every change, however it was drafted, is reviewed by a human maintainer who remains responsible for it, exactly as for any third-party contribution.

Contributing with AI assistance

Using LLMs or coding agents to help write your contribution is allowed. AI is a legitimate tool, and we won't reject a patch simply because a model helped write it. But the bar is the same as for any other pull request:

  • Understand what you submit. You are responsible for your contribution. Be able to explain how it works and why it's correct.
  • Test it. Your code must build and pass the test suite, and new behaviour should come with tests.
  • Disclose it. Note in your pull request that AI tooling was used. This is about honesty and giving reviewers context, not stigma.
  • No slop. Unreviewed, untested, auto-generated output thrown over the fence will be closed. Volume is not contribution, and reviewing it costs maintainers real time.

If you're driving Converse with a coding agent, start with AGENTS.md, which documents the architecture, conventions and build/test workflow the project expects.

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.

Sponsors

관련 저장소
tinode/chat

Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots

GoGo ModulesGNU General Public License v3.0chatchat-application
13.4k2.1k
42wim/matterbridge

bridge between mattermost, IRC, gitter, xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp, keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST API (mattermost not required!)

GoGo ModulesApache License 2.0mattermostxmpp
7.5k725
processone/ejabberd

Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)

ErlangOthererlangxmpp
process-one.net/ejabberd/
6.7k1.5k
twisted/twisted

Event-driven networking engine written in Python.

PythonPyPIOtherpythontwisted
twisted.org
6k1.2k
jitsi/jitsi

Jitsi is an audio/video and chat communicator that supports protocols such as SIP, XMPP/Jabber, IRC and many other useful features.

JavaMavenApache License 2.0jitsiicq
desktop.jitsi.org
4.3k979
ChatSecure/ChatSecure-iOS

ChatSecure is a free and open source encrypted chat client for iOS that supports OTR and OMEMO encryption over XMPP.

Objective-COtheromemoxmpp
chatsecure.org
3.2k1k
igniterealtime/Openfire

An XMPP server licensed under the Open Source Apache License.

JavaMavenApache License 2.0openfirexmpp
igniterealtime.org/projects/openfire/
3k1.4k
processone/tsung

Tsung is a high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc.

ErlangGNU General Public License v2.0erlangxmpp
process-one.net/en/tsung/
2.6k402
dino/dino

Modern XMPP ("Jabber") Chat Client using GTK/Vala

ValaGNU General Public License v3.0xmpp-clientvala
dino.im
2.5k273
igniterealtime/Smack

A modular and portable open source XMPP client library written in Java for Android and Java (SE) VMs

JavaMavenApache License 2.0xmppxmpp-client-library
igniterealtime.org/projects/smack/
2.4k879
xmppjs/xmpp.js

XMPP for JavaScript

JavaScriptnpmISC Licensexmppjavascript
2.3k382
movim/movim

Movim - Decentralized social platform

PHPPackagistGNU Affero General Public License v3.0movimphp
movim.eu
2k279