NonGNU ELPA - jabber

jabber Atom Feed

Description
XMPP/Jabber client
Latest
jabber-0.10.1.tar (.sig), 2026-Apr-03, 1.07 MiB
Maintainer
Thanos Apollo <public@thanosapollo.org>
Website
https://git.thanosapollo.org/emacs-jabber
Browse ELPA's repository
CGit or Gitweb
All Dependencies
fsm (.tar)
Badge

To install this package from Emacs, use package-install or list-packages.

Full description

1. About

jabber.svg

jabber.el is an XMPP client for Emacs.

See the xmpp.org page for the full list of supported XEPs.

2. Requirements

  • Emacs 29.1 or later, compiled with dynamic module support

2.1. OMEMO encryption (optional)

OMEMO end-to-end encryption requires building a native C module. You need a C compiler, pkg-config, and libmbedtls (the development headers). On first load, Emacs will prompt to build the module automatically.

3. Installation

jabber.el is available via NonGNU ELPA.

You can install it via M-x package-install RET jabber

3.1. package-vc (Emacs 30+)

(use-package jabber
  :ensure nil
  :vc (:url "https://git.thanosapollo.org/emacs-jabber/"
            :branch "master"
            :rev :newest
            :lisp-dir "lisp")
  :custom
  (jabber-account-list '(("user@example.org")))
  :config
  (jabber-modeline-mode 1)
  :bind-keymap (("C-x C-j" . jabber-global-keymap))
  :hook (kill-emacs . jabber-disconnect))

3.2. From source

git clone https://git.thanosapollo.org/emacs-jabber/
cd emacs-jabber
make module   # optional, for OMEMO support

Then add to your init file:

(add-to-list 'load-path "/path/to/emacs-jabber/lisp")
(require 'jabber)

4. Configuration

Accounts are configured via jabber-account-list. The simplest form uses auth-source ~/.authinfo.gpg for passwords:

(setq jabber-account-list '(("user@example.org")
                             ("second@account.org")))

With pass (password-store):

(setq jabber-account-list
      `(("user@example.org"
         (:password . ,(auth-source-pass-get 'secret "xmpp/example.org/user")))))

5. Basic commands

Key Command
M-x jabber-connect Connect (prompts for account)
C-x C-j C-c Connect all accounts
C-x C-j C-d Disconnect
C-x C-j C-r Open roster buffer
C-x C-j C-j Start or switch to a chat
C-x C-j C-m Join/switch to a MUC (groupchat)
C-x C-j C-b Switch to a chat buffer

Old versions

jabber-0.10.0.tar.lz2026-Apr-02 180 KiB

News

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

1. [0.10.1]

1.1. New XEP implementations

  • XEP-0163 Personal Eventing Protocol
  • XEP-0368 SRV Records for XMPP over TLS (Direct TLS)

1.2. Features

  • Idle time support for Windows
  • Deduplicated JID completion with annotated candidates

1.3. Fixes

  • PubSub node handler duplicate registration on repeated loads
  • OpenPGP key refetch skipped when key already in local keyring

1.4. Compliance

  • Achieves Advanced Core compliance (XEP-0479 Compliance Suites 2023)

2. [0.10.0]

2.1. Breaking changes

  • Minimum Emacs version raised to 29.1
  • Flat-file message history replaced with SQLite (jabber-db.el)
  • Many obsolete modules removed (see commit history for full list)

2.2. New XEP implementations

  • XEP-0060 Publish-Subscribe
  • XEP-0184 Delivery Receipts and XEP-0333 Chat Markers
  • XEP-0191 Blocking Command
  • XEP-0198 Stream Management with resume
  • XEP-0249 Direct MUC Invitations
  • XEP-0280 Message Carbons
  • XEP-0308 Last Message Correction
  • XEP-0313 Message Archive Management
  • XEP-0352 Client State Indication
  • XEP-0373 OpenPGP for XMPP
  • XEP-0384 OMEMO 0.3 encryption (requires native module build)
  • XEP-0393 Message Styling
  • XEP-0402 PEP Native Bookmarks
  • XEP-0410 MUC Self-Ping
  • XEP-0424/0425 Message Retraction and Moderation
  • XEP-0454 OMEMO Media Sharing
  • XEP-0461 Message Replies

2.3. Features

  • SQLite message storage with full-text search
  • Inline image display and encrypted media (aesgcm://)
  • Typing indicators, delivery receipts, and read markers in chat buffers
  • Encryption indicator in header line (OMEMO, OpenPGP, plaintext)
  • Message correction, reply, retraction
  • Stream Management with automatic resume on reconnect
  • Disco-prioritized MUC autojoin (smallest rooms first)
  • Room preservation and self-ping across reconnect
  • MUC notification filtering (all, mentions, nil)
  • OMEMO trust management UI and device management
  • Modernized roster display
  • Unified modeline with activity tracking
  • Auto-reconnect enabled by default

2.4. Security

  • CVE-2017-5589: Message Carbons validates sender JID to prevent spoofed carbon copies
  • Receipt handling guards against MAM replay
  • OMEMO trust filtering at encrypt time

3. [0.9.0]

3.1. Enable carbons by default

Enable support for XEP-0280 (message carbons) by default.

3.2. Support for reading passwords from netrc/authinfo files

Use "machine example.com login username password s3cret port xmpp".

3.3. Provide MUC presence announcement formatting

Provide customization to limit, highlight, or deemphasize MUC presence announcements. See the manual for details (info "(jabber) Presence announcements").

3.4. Support for roster's groups roll state saving

3.5. Full support for XEP-0012

Response of idle time.

3.6. Support for XEP-0202

Entity Time for request/response time as main method.

3.7. Support for automatic MUC nicks colorization

See "Customizing the chat buffer" in the manual.

3.8. XML Console

Log all received/sending XML stanzas into special buffer. Also can be used to send custom XML stanzas manually.

3.9. Autoaway

Support for list of autoaway methods. Support for Xa. See section "Autoaway" in manual.

3.10. MUC

MUC participants list format is now customizable: see … …