jabber Atom Feed

Description
XMPP/Jabber client
Latest
jabber-0.10.9.0.20260516.32909.tar (.sig), 2026-May-16, 1.06 MiB
Maintainer
Thanos Apollo <public@thanosapollo.org>
Website
https://codeberg.org/emacs-jabber/emacs-jabber
Browse ELPA's repository
CGit or Gitweb
All Dependencies
fsm (.tar), keymap-popup (.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 uses a native C module. Build dependencies: a C compiler, pkg-config, and libmbedtls.

On first use of OMEMO, Emacs offers to fetch picomemo and build jabber-omemo-core in place. This works for all install methods (git clone, package-vc, and NonGNU ELPA) provided the install directory is writable and the build dependencies are present.

If you prefer to build manually:

cd /path/to/jabber-source-or-elpa-dir
make module

The resulting jabber-omemo-core.so (or .dylib on macOS) lands beside the Elisp files and is loaded 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. GNU Guix

The repository ships a guix.scm that builds straight from the current working tree, so you never need to update hashes or pin a commit. Whatever is checked out is what gets installed. Picomemo is fetched as a pinned input by guix.scm, so the optional OMEMO submodule does not need to be initialised.

git clone https://git.thanosapollo.org/emacs-jabber/
cd emacs-jabber

One-shot install into your user profile:

guix package -f guix.scm

A development shell with all build dependencies:

guix shell -D -f guix.scm

To use emacs-jabber from a Guix Home configuration, load the package definition and reference it from your services:

(use-modules (gnu home)
             (gnu home services)
             (gnu home services guix)
             (gnu services)
             (guix channels)
             (guix gexp))

(define emacs-jabber-git
  (load "/path/to/emacs-jabber/guix.scm"))

(home-environment
 (packages (list emacs-jabber-git)))

Re-run guix home reconfigure after pulling new commits and the package will be rebuilt from the updated checkout.

4. Configuration

4.1. Authentication

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")))))

4.2. Bug references

(add-hook 'jabber-chat-mode-hook #'bug-reference-mode)

;; Customize references
(setq jabber-bug-reference-alist
      '(("jabber-el@conference\\.hmm\\.st"
         "\\(#\\([0-9]+\\)\\)"
         "https://codeberg.org/emacs-jabber/emacs-jabber/issues/%s")
        ("#guix%irc\\.libera.chat@irc\\.biboumi-gateway\\.example"
         "\\(#\\([0-9]+\\)\\)"
         "https://codeberg.org/guix/guix/issues/%s")))

5. Basic commands

  • Use M-x jabber-roster or C-x C-j C-r to get started.

Old versions

jabber-0.10.9.0.20260515.183702.tar.lz2026-May-15 184 KiB
jabber-0.10.9.0.20260514.224355.tar.lz2026-May-15 186 KiB
jabber-0.10.8.0.20260514.170538.tar.lz2026-May-14 186 KiB
jabber-0.10.8.0.20260513.160127.tar.lz2026-May-13 185 KiB
jabber-0.10.7.0.20260509.192638.tar.lz2026-May-09 191 KiB
jabber-0.10.6.0.20260504.5110.tar.lz2026-May-04 190 KiB
jabber-0.10.5.0.20260423.192938.tar.lz2026-Apr-23 189 KiB
jabber-0.10.4.0.20260408.42932.tar.lz2026-Apr-08 187 KiB
jabber-0.10.3.0.20260407.85812.tar.lz2026-Apr-07 186 KiB
jabber-0.10.0.0.20260402.173841.tar.lz2026-Apr-02 180 KiB

News

1. [0.10.9]

1.1. Fixes

  • Styling face leak on message send
  • Modeline presence hook name
  • SRV weighted-select entry duplication

1.2. Added

  • bug-reference-mode auto-setup for chat buffers
  • Android picomemo compilation
  • Presence status in completing-read annotations
  • Per-account roster scoping

2. [0.10.8]

2.1. Changed

  • Roster replaced with keymap-popup interface
  • Dissolved jabber-menu.el into home modules

2.2. Improved

  • Improved test suite

3. [0.10.7]

3.1. Fixes

  • SM: Fixed silent message loss on ack stall with watchdog recovery
  • SM: IQ stanzas bypass back-pressure gate

3.2. Improved

  • Keymap-popup menus show dynamic values with faces

4. [0.10.6]

4.1. Changed

  • Replaced transient.el with keymap-popup.el for all menus
  • Roster, bookmarks, and OMEMO trust mode maps now double as popup keymaps, eliminating duplicate key definitions
  • Chat operations menu shows context-appropriate entries (1:1 vs MUC)
  • New dependency: keymap-popup (GNU ELPA)

5. [0.10.5]

5.1. Fixes

  • OMEMO JIT build prompt now discloses network fetch from github.com
  • OMEMO module no longer auto-fetches in batch mode (Emacs network policy)
  • OMEMO module init hardened: graceful degradation without module support, nil-safe path resolution, single prompt per session
  • Use gmake on BSD for OMEMO module build

5.2. Improved

  • ELPA users guided to clone and build OMEMO module manually
  • README documents OMEMO build for ELPA and package-vc users

5.3. Internal

  • Fixed native-comp warnings (declare-function for jabber-chain-add, jabber-process-ping, ewoc-data, encode-hex-string, auth-source-search)
  • Added make lint-native-comp target
  • Added ;;; Commentary: and ;;; Code: sections to 30 legacy files

6. [0.10.4]

6.1. Fixes

  • OMEMO module install path autodetected for ELPA layout (build no longer fails when lisp/ subdirectory is absent)

6.2. Internal

  • Silenced native-comp warnings in jabber-message-reply and jabber-moderation

7. [0.10.3]

7.1. Fixes

  • OMEMO JIT build finds source path in ELPA installs
  • Picomemo fallback clone for ELPA tarballs (submodule not populated)
  • History import no longer stores empty account string
  • Exclude picomemo test/example files from ELPA tarball

7.2. Internal

  • MAM decoupled from display via hooks
  • Chat backlog loaded from local DB instead of MAM
  • Removed legacy SSL connection method

8. [0.10.2]

8.1. Fixes

  • OMEMO module now optional: graceful degradation when native module is absent
  • D-Bus notifications guard for Windows: no longer kills alert chain
  • Roster refresh crash with multiple windows
  • OMEMO trust commands guard without native module

9. [0.10.1]

9.1. New XEP implementations

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

9.2. Features

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

9.3. Fixes

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

9.4. Compliance

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

10. [0.10.0]

10.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)

10.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

… …