jabber 
- Description
- XMPP/Jabber client
- Latest
- jabber-0.13.1.0.20260818.4.tar (.sig), 2026-Aug-18, 1.80 MiB
- Maintainer
- Thanos Apollo <public@thanosapollo.org>
- Website
- https://git.thanosapollo.org/emacs-jabber/about/
- 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.el is an XMPP client for Emacs.
See the xmpp.org page for the full list of supported XEPs.
- Homepage
- Source:
2. Requirements
- Emacs 29.1 or later, compiled with dynamic module support
- fsm 0.2.0 or later
- keymap-popup 0.2 or later
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 from the ELPA package directory:
cd /path/to/elpa/jabber-VERSION 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. That is the only supported
install path.
(use-package jabber
:ensure t
:config
(setq jabber-account-list
`(("user@example.org"
(:password . ,(auth-source-pass-get 'secret "xmpp/example.org")))))
(jabber-modeline-mode 1)
:bind-keymap (("C-x C-j" . jabber-global-keymap))
:hook (kill-emacs . jabber-disconnect))
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")))
4.2. SOCKS5 proxy
An account can connect through an unauthenticated SOCKS5 proxy:
(setq jabber-account-list
'(("user@example.org"
(:proxy . (:type socks5 :host "127.0.0.1" :port 9050)))))
The destination hostname is sent to the proxy rather than resolved locally.
Proxy connections bypass SRV lookup and use the JID domain on port 5222, or
:network-server and :port when those are configured. STARTTLS is supported.
Direct TLS discovery, proxy authentication, and other proxy protocols are not
supported for proxied accounts.
4.3. 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://todos.thanosapollo.org/r/emacs-jabber/%s")))
5. Basic commands
- Use
M-x jabber-rosterorC-x C-j C-rto get started.
Old versions
| jabber-0.13.1.0.20260816.3.tar.lz | 2026-Aug-16 | 300 KiB |
| jabber-0.13.1.0.20260810.1.tar.lz | 2026-Aug-10 | 298 KiB |
| jabber-0.13.1.0.20260807.0.tar.lz | 2026-Aug-07 | 298 KiB |
| jabber-0.13.0.0.20260806.3.tar.lz | 2026-Aug-06 | 298 KiB |
| jabber-0.13.0.0.20260805.0.tar.lz | 2026-Aug-05 | 298 KiB |
| jabber-0.12.5.0.20260802.22.tar.lz | 2026-Aug-02 | 297 KiB |
| jabber-0.12.5.0.20260802.19.tar.lz | 2026-Aug-02 | 296 KiB |
| jabber-0.12.5.0.20260801.12.tar.lz | 2026-Aug-01 | 294 KiB |
| jabber-0.11.1.0.20260702.1.tar.lz | 2026-Jul-02 | 250 KiB |
| jabber-0.10.10.0.20260612.57.tar.lz | 2026-Jun-12 | 199 KiB |
News
1. [0.13.1]
1.1. Fixes
- Correct outgoing MUC message-correction target lookup
- Keep global Jabber menu bindings available during package loading
- Preserve chat message bodies after live source reloads
2. [0.13.0]
2.1. Added
- XEP-0201 message threads with persistent sessions, local titles, child threads, and account-scoped routing
- XEP-0004 forms for MUC configuration and ad-hoc commands
- Unauthenticated SOCKS5 account
:proxysupport; destination names are resolved by the proxy, and authentication and other proxy protocols are not supported
2.2. Changed
- Chat-state notifications follow their owning message-thread session
- Thread buffer labels and headers show root-message previews
- Test loading no longer depends on generated autoloads and prefers newer source files over stale byte-code
- Compose, registration, search, and vCard editing use text-first buffers and grouped command menus instead of widget.el
- Added contribution instructions
2.3. Fixes
- Live MUC reactions use the correct account-scoped room buffer
- Replayed empty OMEMO messages stay hidden
- Delivery-receipt status follows the latest message
- Autoaway applies the configured away and extended-away priorities
- MUC mentions treat nicknames literally
- Direct invitations and transient reconnects preserve per-account room passwords in memory; explicit leave clears that session state
3. [0.12.5]
3.1. Fixes
- Stop archived OMEMO failures from flooding
*Messages* - Preserve unsent messages across connection recovery
- Improve privacy and interoperability for receipts, blocking, bookmarks, MAM, and reactions
4. [0.12.4]
4.1. Added
- Debian package build and installed-package tests to release checks
4.2. Changed
- Hardened OMEMO message corrections and real-time text handling
4.3. Fixes
- Reproducible autoload generation for Debian packages
- Load Org faces before rendering styled messages
5. [0.12.3]
5.1. Added
- Distinct theme-aware nickname colors in group chats
- Save images that Emacs cannot display
5.2. Fixes
- More reliable keepalive monitoring with multiple accounts
- Nickname completion works with custom delimiters
6. [0.12.2]
6.1. Added
- Open chats from desktop notifications
6.2. Fixes
- More reliable encrypted chats during session migration and out-of-order delivery
7. [0.12.1]
7.1. Added
- Press RET on a reply to jump to the original message
- Replies show and preserve more context, including after reloading a chat
7.2. Fixes
- More reliable encrypted chats after reconnects and out-of-order messages
- Safer inline image display, with manual loading available by pressing RET on an image URL
- Manual image sizes are preserved when chats are redrawn
8. [0.12.0]
8.1. Added
- Fontified fenced code blocks in chats
- Inline reply context when messages do not include fallback quotes
8.2. Changed
- More reliable encrypted chats after reconnects, archive catchup, and replayed messages
- Improved reply and correction handling
8.3. Fixes
- Failed encrypted message corrections no longer replace the original message
- Reply quotes and corrected replies preserve their context more consistently
9. [0.11.1]
9.1. Added
- See who reacted to a message via help-echo
- Help-echo for the item at point now shows automatically
9.2. Fixes
- Stop repeated error stanzas from spamming and reopening chat buffers
- Preserve scroll position when a chat buffer refreshes
10. [0.11.0]
10.1. Added
- Message reactions and MUC typing indicators
- Nix flake development environment
10.2. Changed
- OMEMO native module setup no longer auto-builds or auto-fetches sources
10.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
… …