-
-
Notifications
You must be signed in to change notification settings - Fork 1
Microblogging
XMPP microblogging lets you publish short posts — analogous to Mastodon/Twitter
toots/tweets — directly over XMPP via PubSub nodes. Posts are Atom entries
stored on a PubSub service; contacts who subscribe to your
urn:xmpp:microblog:0 PEP node receive them in real-time.
Status: XEP-0277 is Deferred; XEP-0472 is Experimental. Both are implemented in this plugin for the write side (post, reply, retract) and the receive side (incoming PEP push events are rendered automatically).
- Posts live on a PubSub node (most commonly
urn:xmpp:microblog:0on a PEP service, or any XEP-0060 pubsub service). - Each post is an Atom entry (
<entry xmlns='http://www.w3.org/2005/Atom'>). - XEP-0472 requires the publish-option
pubsub#type=urn:xmpp:microblog:0and the capability stringurn:xmpp:pubsub-social-feed:1to be advertised — both are handled automatically by this plugin. - Threaded replies use RFC 4685
thr:in-reply-toinside the Atom entry.
| Software | Role |
|---|---|
| Movim | Full social feed — post, reply, retract, timeline |
| Libervia / Salut-à-Toi | Full implementation |
| ejabberd | PubSub mechanics work; no built-in social UI |
| Prosody + mod_pep | PubSub node creation/subscription works |
/feed post <service-jid> <node> <text>
Example — post to your own PEP microblog:
/feed post movim.eu urn:xmpp:microblog:0 Hello from WeeChat!
Example — post to a community node on a standalone pubsub service:
/feed post pubsub.example.com my.community.node Anyone else at the conf today?
The plugin creates the node if it does not already exist (send a
pubsub#publish_model=open create IQ first if your server requires explicit
node creation).
/feed reply <service-jid> <node> <item-id> <text>
First read the feed to find the item ID you want to reply to:
/feed movim.eu urn:xmpp:microblog:0
Then reply:
/feed reply movim.eu urn:xmpp:microblog:0 abc-1234 That's a great point!
The reply is a new Atom entry that contains a thr:in-reply-to ref="abc-1234"
element (RFC 4685). Clients such as Movim render threaded conversations from
these references.
/feed retract <service-jid> <node> <item-id>
Example:
/feed retract movim.eu urn:xmpp:microblog:0 abc-1234
Sends a PubSub retract IQ. Subscribers receive a retraction notification; supporting clients remove the post from their timeline.
Note: Retraction is best-effort. Contacts who already received the item may still have a local copy.
Use the standard /feed read commands:
/feed movim.eu urn:xmpp:microblog:0 # fetch last 20 posts
/feed movim.eu urn:xmpp:microblog:0 --limit 5 # fetch last 5 posts
/feed movim.eu urn:xmpp:microblog:0 --before <item-id> # older page (RSM)
Each node opens in its own dedicated WeeChat buffer. The RSM cursor is
persisted in LMDB so subsequent /feed calls continue from where you left off.
When a contact publishes to their urn:xmpp:microblog:0 PEP node, the push
event is delivered automatically and rendered in the WeeChat buffer for that
contact:
alice@example.com Just landed in Berlin! ✈️
[microblog] 2026-03-25 14:32 UTC — urn:xmpp:microblog:0
Thread references (thr:in-reply-to) are shown inline so you can see which
post is being replied to.
The plugin advertises the following in its entity caps (XEP-0115) and
disco#info response so social-feed-aware servers and clients can discover
support:
-
urn:xmpp:microblog:0+notify— subscribe to contacts' microblog PEP nodes -
urn:xmpp:pubsub-social-feed:1— XEP-0472 social feed capability
-
PubSub Feed Reader — general
/feedread commands -
Command Reference — full
/feedsub-command table