jabber Atom Feed

Description
XMPP/Jabber client
Latest
jabber-0.11.1.0.20260626.0.tar (.sig), 2026-Jun-26, 1.48 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 built from the vendored picomemo source. Build dependencies: a C compiler, pkg-config, and Mbed TLS 3.0 or later (mbedcrypto).

Build the module manually from the jabber source or ELPA/package directory:

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. If the module is missing, OMEMO use signals OMEMO module not compiled.

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

Emacs honors package-vc build commands such as :make only when package-vc-allow-build-commands allows the package.

(setq package-vc-allow-build-commands '(jabber))

(use-package jabber
  :ensure nil
  :vc (:url "https://codeberg.org/emacs-jabber/emacs-jabber.git"
            :branch "master"
            :rev :newest
            :lisp-dir "lisp"
            :doc "README.org"
            :make "module")
  :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. straight.el

(use-package jabber
  :straight `(jabber
              :type git
              :host codeberg
              :repo "emacs-jabber/emacs-jabber"
              :branch "master"
              :files ("lisp/*.el"
                      "lisp/jabber-omemo-core.so"
                      "lisp/jabber-omemo-core.dylib")
              :pre-build ,(pcase system-type
                            ('berkeley-unix '(("gmake" "module" "CC=clang")))
                            ('darwin '(("make" "module" "CC=clang")))
                            (_ '(("make" "module")))))
  :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.3. Nix

The repository ships a flake.nix with Emacs, test, lint, and native-module build dependencies.

make test
make module

To enter the same environment manually:

nix develop

To run the isolated Nix checks:

nix flake check

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.11.0.0.20260619.11.tar.lz2026-Jun-19 250 KiB
jabber-0.11.0.0.20260617.8.tar.lz2026-Jun-18 248 KiB
jabber-0.11.0.0.20260614.1.tar.lz2026-Jun-14 248 KiB
jabber-0.10.10.0.20260612.57.tar.lz2026-Jun-12 199 KiB
jabber-0.10.10.0.20260608.54.tar.lz2026-Jun-08 199 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.0.0.20260402.173841.tar.lz2026-Apr-02 180 KiB

News

1. [0.11.1]

1.1. Added

  • See who reacted to a message via help-echo
  • Help-echo for the item at point now shows automatically

1.2. Fixes

  • Stop repeated error stanzas from spamming and reopening chat buffers
  • Preserve scroll position when a chat buffer refreshes

2. [0.11.0]

2.1. Added

  • Message reactions and MUC typing indicators
  • Nix flake development environment

2.2. Changed

  • OMEMO native module setup no longer auto-builds or auto-fetches sources

2.3. Fixes

  • Avoid Prosody disconnects by sending CSI only when the server advertises it
  • Recreate missing chat and MUC buffers from unread activity
  • Stop emitting malformed presence and vCard stanzas with nil children
  • Improve HTTP upload, message archive, reactions, receipts, and chat buffer reliability

3. [0.10.10]

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

3.2. Fixes

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

4. [0.10.9]

4.1. Fixes

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

4.2. Added

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

5. [0.10.8]

5.1. Changed

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

5.2. Improved

  • Improved test suite

6. [0.10.7]

6.1. Fixes

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

6.2. Improved

  • Keymap-popup menus show dynamic values with faces

7. [0.10.6]

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

8. [0.10.5]

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

8.2. Improved

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

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

9. [0.10.4]

9.1. Fixes

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

9.2. Internal

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

10. [0.10.3]

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

10.2. Internal

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

11. [0.10.2]

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

12. [0.10.1]

12.1. New XEP implementations

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

… …