# Converse.js

A free and open-source XMPP chat client in your browser

Learn More

## Converse.js is written in Javascript and runs in your browser.

You can start using it here immediately, or you can integrate it into your own website.

Take a look at the demo page for other examples of how Converse.js can be configured and used.

You can connect to any publically accessible XMPP/Jabber server, either from a public provider, or one you have set up yourself.

### Don't have an XMPP/Jabber account?

No problem! With converse.js you can register an account on any public XMPP server that allows registration.

## Integration

- Ruby on Rails
- Plone
- Django (option 1)
- Django (option 2)
- Roundcube
- Wordpress
- Patternslib
- Alfresco
- Friendica

## Features

- Presence information (online, busy, away)
- Single-user chat
- Contacts and groups
- Multi-user chatrooms (XEP 45)
- Chatroom bookmarks (XEP 48)
- Direct invitations to chat rooms (XEP 249)
- vCard support (XEP 54)
- Service discovery (XEP 30)
- In-band registration (XEP 77)
- Roster item exchange (XEP 144)
- Custom status messages
- Typing and chat state notifications (XEP 85)
- Desktop notifications
- Messages appear in all connected chat clients (XEP 280)
- Third person "/me" messages (XEP 245)
- XMPP Ping (XEP 199)
- Server-side archiving of messages (XEP 313)
- Client state indication (XEP 352)
- Off-the-record encryption
- Supports anonymous logins, see the anonymous login demo.
- Translated into 16 languages

## Screencasts

- In a Plone site
- Chatting with buddies from Jabber.org and Gmail
- Off-the-record encryption

## Contact

- Follow me on Twitter or chat with me via XMPP at jc@opkode.com.
- For technical support, you can ask on Stack Overflow or if you have a more simple question you can ask us in the Converse.js chat room: discuss@conference.conversejs.org.
- Please file bugs on Github.
- I'm available for paid-for features, custom development and consulting. Here's my contact form.

Converse.js is supported by