Skip to content
Emiel Kollof edited this page Jul 6, 2026 · 14 revisions

Xepher

Xepher logo

A WeeChat plugin written in C++23 that adds full XMPP/Jabber support, including a comprehensive set of XEPs targeting CCS2022 compliance.

Fork of bqv/weechat-xmpp carrying critical bug fixes, new XEP implementations, and ongoing refactoring.


Wiki pages

Page Description
Installation Build dependencies, compile steps, loading into WeeChat
Configuration Account setup, options, status bar items
Usage Commands, MUC, PM, encryption, message features
Microblogging XEP-0277/0472 — post, reply, retract; Movim/Libervia interop
Command Reference Complete table of all commands
Troubleshooting Common problems, raw XML logging, OMEMO diagnosis
Contributing Build system, port abstraction, code style, submitting patches
Releasing Version bumps, GitHub Actions CI packages, publishing releases

Feature highlights

  • Full XEP-0045 Multi-User Chat (MUC) — /create (instant + reserved), IRC-style admin (/kick, /ban, /voice, /devoice, /op, /deop), owner config (/setmodes, /affiliation, /destroy), registration (/mucregister), direct and mediated invites (/invite, /decline), mode display in status bar
  • Buffer sidebar prefixes: # for MUC rooms, @ for PM buffers
  • OMEMO encryption using the legacy axolotl namespace (eu.siacs.conversations.axolotl) only (XEP-0384). OMEMO:2 (urn:xmpp:omemo:2) is not supported. PM OMEMO is production-ready; non-anonymous MUC OMEMO is experimental (see docs/planning-muc-omemo.md). Signal-spec compliant (random pre-key selection, own-device key inclusion, pre-key ID continuity)
  • BTBV Trust Model — Blind Trust Before Verification TOFU with per-device trust levels (BLIND/VERIFIED/UNTRUSTED/UNDECIDED)
  • Room Activity Indicators — subscribe on connect, display MUC activity notifications (XEP-0437)
  • PGP encryption (XEP-0027)
  • Message Archive Management with LMDB caching and RSM cursor persistence (XEP-0313)
  • MAM Preferences — view and set per-JID archiving policy (XEP-0441)
  • Message Correction, Retraction, Reactions, Replies (XEP-0308/0424/0444/0461)
  • Ephemeral Messages — auto-tombstone after N seconds (XEP-0466)
  • Chat Notification Settings — per-chat always/on-mention/never preference (XEP-0492)
  • MUC Mention Notifications — surface missed @mentions (XEP-0452)
  • HTTP File Upload (XEP-0363) with Encrypted File Sharing (XEP-0448, AES-256-GCM); small plaintext images via XEP-0231 BoB (≤8 KiB)
  • Message Markup rendering — emphasis, strong, code, blockquote, lists (XEP-0394)
  • Message Styling — bold, italic, code, blockquotes (XEP-0393)
  • XHTML-IM rendering (XEP-0071)
  • Stream Management / resumption (XEP-0198) — connect probes (SM, CSI, MAM, bookmarks) gated on server disco#info
  • /disco summary — cached server capability matrix; auto-printed to account log after connect
  • PEP Native Bookmarks with autojoin (XEP-0402)
  • In-Band Registration: register, change password, cancel account (XEP-0077)
  • Interactive picker UI for retract, moderate, reply, edit, upload
  • Link metadata / OpenGraph previews (XEP-0511)
  • Message status glyphs: ⌛ pending → ✓ delivered → ✓✓ read
  • Smart presence filter (hides join/leave noise for quiet nicks)
  • PubSub feed reader with RSM cursor persistence and Pubsub MAM (XEP-0060 / XEP-0442); disable entirely with xmpp.look.feeds off
  • Microblogging post/reply/retract — Movim/Libervia interop (XEP-0277 / XEP-0472)
  • vCard retrieval including vCard4 (XEP-0054 / XEP-0292)
  • Consistent Color Generation per nick (XEP-0392)
  • Exponential reconnect backoff; resource regeneration on <conflict/>
  • Kitty inline image previews (vendored icat) — SFS/SIMS/OOB/ESFS, XEP-0449 stickers, XEP-0514 custom emoji, XEP-0231 BoB send/receive (Movim stickers); MAM replay sync for image dimensions
  • Pre-built packages for Debian, Fedora, Arch, Void, and Alpine via GitHub Releases

See the full XEP compliance table in the README.


Community

The official Xepher MUC is the place to ask questions, report usage issues that don't belong in the GitHub issue tracker, share tips, and follow announcements.

Join with the plugin once any account is connected:

/xmpp enter xepher@conference.hackerheaven.org

Or from any other XMPP client (Conversations, Gajim, Dino, Monal, etc.) using the JID above.


License

Mozilla Public License 2.0. Original project © Tony Olagbaiye.

Clone this wiki locally