jabber Atom Feed

Description
XMPP/Jabber client
Latest
jabber-0.10.10.0.20260611.56.tar (.sig), 2026-Jun-11, 1.15 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.

  • Homepage
  • Source:
  • Discuss the project in these XMPP MUCs:
    • jabber-el@conference.hmm.st for the project
    • emacs@conference.conversations.im for Emacs peer support including jabber.el

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"
            :doc "README.org")
  :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.

3.3. Nix

The repository also ships a shell.nix with the native-module build dependencies.

make module

To enter the same environment manually:

nix-shell --pure shell.nix

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.10.0.20260608.54.tar.lz2026-Jun-08 199 KiB
jabber-0.10.10.0.20260605.6.tar.lz2026-Jun-05 193 KiB
jabber-0.10.10.0.20260604.3.tar.lz2026-Jun-04 191 KiB
jabber-0.10.10.0.20260530.0.tar.lz2026-May-30 187 KiB
jabber-0.10.9.0.20260526.10.tar.lz2026-May-26 187 KiB
jabber-0.10.8.0.20260514.170538.tar.lz2026-May-14 186 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.0.0.20260402.173841.tar.lz2026-Apr-02 180 KiB

News

1. [0.10.10]

1.1. Added

  • Roster contact popup can edit contact name and groups
  • Roster account picker can clear scoped view with “All accounts”
  • Chat operations menu exposes MUC actions from room buffers

1.2. Fixes

  • Suppress alerts for self-sent carbons and own MUC messages

2. [0.10.9]

2.1. Fixes

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

2.2. Added

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

3. [0.10.8]

3.1. Changed

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

3.2. Improved

  • Improved test suite

4. [0.10.7]

4.1. Fixes

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

4.2. Improved

  • Keymap-popup menus show dynamic values with faces

5. [0.10.6]

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

6. [0.10.5]

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

6.2. Improved

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

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

7. [0.10.4]

7.1. Fixes

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

7.2. Internal

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

8. [0.10.3]

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

8.2. Internal

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

9. [0.10.2]

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

10. [0.10.1]

10.1. New XEP implementations

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

10.2. Features

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

10.3. Fixes

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

10.4. Compliance

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

11. [0.10.0]

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

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

… …