Skip to content

Command Reference

ekollof edited this page Jun 10, 2026 · 11 revisions

Command Reference

Complete list of commands provided by weechat-xmpp-improved.


Account management

/account list
/account add <name> <jid> <password>
/account connect <name>
/account disconnect <name>
/account reconnect <name>
/account delete <name>
/account register <name> <jid> <password>   # create account on server (XEP-0077)
/account unregister <name>                  # cancel account on server (XEP-0077)
/account password <name> <new-password>     # change password in-band (XEP-0077)

Messaging

Command Description
/enter <jid> Join a MUC room (creates it if it doesn't exist on the server)
/join <jid> Alias for /enter
/create <room@server> [nick] [--reserved] Create a new MUC room (XEP-0045 §10.1). With --reserved the room is created locked so the owner can configure it via /setmodes / /affiliation / /destroy before letting anyone in. Without --reserved the room is unlocked with server defaults (instant room) as soon as the server signals status 201
/open <jid> Open a direct chat (PM)
/query <jid> [msg] Alias for /open; optional opening message
/msg <text> Send a message in the current buffer
/me <text> Send a /me action (XEP-0245)
/ephemeral <seconds> <text> Send an ephemeral message that auto-deletes after N seconds (XEP-0466)
/notify [<jid>] [always|on-mention|never] Get or set per-chat notification preference (XEP-0492)
/invite [--mediated] <jid> [reason] Invite a user to the current MUC (XEP-0249 direct by default; --mediated for XEP-0045 §7.8.2)
/decline [room inviter [reason]] Decline a pending mediated MUC invitation (XEP-0045 §7.8.2; account buffer)
/selfping Verify MUC membership (XEP-0410)
/edit Interactive picker: choose a sent message to correct (XEP-0308)
/edit-to <id> <text> Correct a specific message by ID (used by /edit picker)
/retract Interactive picker: choose a sent message to delete (XEP-0424)
/moderate [reason] Interactive picker: choose a MUC message to moderate (XEP-0425)
/react <emoji> React to the last received message (XEP-0444)
/reply Interactive picker: choose a message to reply to (XEP-0461)
/reply <text> Reply to the last received message (XEP-0461)
/reply-to <id> <text> Reply to a specific message by ID (used by /reply picker)
/spoiler [hint: <hint> :: ] <text> Send a spoiler message (XEP-0382)
/buzz Send attention request to current PM contact (XEP-0224)
/whois [jid] Retrieve vCard (XEP-0054 / XEP-0292)
/setvcard <field> <value> Publish a vCard field (XEP-0054)
/setavatar <filepath> Publish avatar image (XEP-0084)

MUC room management

Command Description
/kick <nick> [reason] Kick an occupant (requires moderator role)
/ban <jid> [reason] Ban a user by JID (requires admin/owner role)
/voice <nick> [reason] Grant voice in a moderated room (role=participant; moderator)
/devoice <nick> [reason] Revoke voice (role=visitor; moderator)
/op <nick> [reason] Grant moderator role (admin/owner)
/deop <nick> [reason] Revoke moderator role back to participant (not a kick)
/topic [text] Set or clear the room topic
/nick [newnick] Change your nickname in the current MUC
/names List all known occupants with IRC-style role/affiliation prefixes (sorted by rank then nick)
/modes Display the MUC room modes and metadata (XEP-0045 §6.4/6.5). The mode flags alone also appear in the buffer's status-bar modes slot IRC-style (e.g. +miP for a moderated, members-only, persistent room) — automatically updated on join and on status-104 config-change notifications
/setmodes [+/-][m][i][k][p][P][N][S] [secret] [--confirm] Set/clear room mode flags (XEP-0045 §10.2, owner-only). Letters: m=moderated, i=members-only, k=password (requires <secret> after +k), p=public, P=persistent, N=non-anonymous, S=semi-anonymous. Without --confirm the command prints the planned diff; with --confirm it fetches the form, mutates it, and submits. The room config form is auto-fetched on first use; if not yet cached, run the command once to fetch, then again with the same flags to apply. Password is passed as a CLI argument and may be visible in shell history
/destroy [<reason> [<alt-jid> [<alt-password>]]] [--confirm] Destroy the current MUC room (XEP-0045 §10.7, owner-only). Optionally specify a reason, an alternate room JID for occupants to migrate to, and a password for that alternate room. Without --confirm the command prints the planned action. This action is irreversible — all occupants are kicked and the room configuration is lost
/affiliation list [owner|admin|member|outcast] Query affiliation list (default: member)
/affiliation set <jid> <owner|admin|member|none|outcast> [--nick <nick>] [<reason>] [--confirm] Change a user's MUC affiliation (XEP-0045 §10.5, owner-only). --nick sets or unsets (empty) reserved member nick. Use none or outcast to revoke membership or ban a JID. Without --confirm the command prints the planned action
/mucregister query Show room registration / reserved-nick info (XEP-0045 §15)
/mucregister [nick] Register with the room using the given nick
/invite [--mediated] <jid> [reason] Invite a user (direct XEP-0249 by default; --mediated for XEP-0045 §7.8.2)
/decline [room inviter [reason]] Decline a pending mediated MUC invitation (XEP-0045 §7.8.2)

Nicklist prefixes (XEP-0045)

Affiliation takes precedence over role when both apply.

Prefix Role / Affiliation Meaning
~ affiliation: owner Room owner — full control
& affiliation: admin Administrator — can grant/revoke roles
@ role: moderator Can kick and mute participants
% affiliation: member Registered member (voice in members-only rooms)
+ role: participant Standard occupant with voice
? role: visitor Read-only in moderated rooms
! affiliation: outcast Banned from the room
. (none) No role or affiliation set yet

Room mode letters (XEP-0045 §6.4)

Room mode flags are advertised by the MUC via muc_* disco#info features and rendered IRC-style in the buffer's status-bar modes slot (via weechat_buffer_set(buf, "modes", ...)). Use /modes in a MUC buffer for the full metadata; use /setmodes to change flags.

Letter XEP feature var Meaning
m muc_moderated Moderated — only voice/+ can send
i muc_membersonly Members-only (not open)
k muc_passwordprotected Password required to enter
p muc_hidden Not publicly listable
P muc_persistent Room persists after last occupant leaves
N muc_nonanonymous Real JIDs visible to all occupants
S muc_semianonymous Real JIDs visible to moderators only

Negative variants (muc_unmoderated, muc_open, muc_public, muc_temporary, muc_unsecured) are defaults and never displayed. Example: a moderated, members-only, persistent room renders as +miP.


Privacy & blocking (XEP-0191)

Command Description
/block <jid> [jid ...] Block one or more JIDs
/unblock [jid ...] Unblock; no arguments unblocks all
/blocklist List all blocked JIDs

Encryption

Command Description
/omemo Enable OMEMO for the current buffer (PM or non-anonymous MUC). MUC support is experimental and untested.
/omemo check Verify OMEMO bundle is published
/omemo republish Republish legacy OMEMO bundle nodes (axolotl namespace only)
/omemo status Show device ID and status
/omemo reset-keys Reset key database (forces renegotiation)
/omemo fetch [jid] [device-id] Force devicelist/bundle refresh
/omemo kex [jid] [device-id] Force key transport now
/omemo fingerprint [jid] Show colon-hex fingerprint(s) with trust status ([trusted]/[distrusted]/[undecided])
/omemo approve <jid> [fp] Mark key(s) trusted and broadcast XEP-0450 <trust> ATM message
/omemo distrust <jid> [fp] Mark key(s) distrusted and broadcast XEP-0450 <distrust> ATM message
/pgp [keyid|status|reset] Manage PGP encryption
/plain Disable encryption (use plaintext)

File sharing

Command Description
/upload Interactive file picker
/upload <path> Upload a file directly (XEP-0363, XEP-0447; plaintext images ≤8 KiB use XEP-0231 BoB)

Archive & history

Command Description
/mam [days] Fetch MAM history (default: 7 days; XEP-0313)
/mam prefs Show current MAM preferences (XEP-0441)
/mam prefs default <always|never|roster> Set default archiving policy
/mam prefs always <jid> Add a JID to the always-archive list
/mam prefs never <jid> Add a JID to the never-archive list

Service discovery & roster

Command Description
/disco [jid] Discover services and features (XEP-0030)
/adhoc <jid> [node] [id] [field=value ...] Execute ad-hoc commands (XEP-0050)
/roster Display contact list
/roster add <jid> [name] Add a contact
/roster del <jid> Remove a contact
/list [keywords] Search public MUC rooms (XEP-0433)
/bookmark List PEP bookmarks (XEP-0402)
/bookmark add [jid] [name] Add a bookmark
/bookmark del <jid> Remove a bookmark
/bookmark autojoin <jid> <on|off> Toggle autojoin

PubSub feed reader (XEP-0060)

Command Description
/feed Fetch subscriptions from all auto-discovered PubSub services
/feed discover List auto-discovered PubSub services
/feed discover --all Fetch every node from every discovered service
/feed <service-jid> Fetch all subscribed nodes on a specific service
/feed <service-jid> --all Discover and fetch all nodes via disco#items
/feed <service-jid> <node> Fetch a specific node into a dedicated buffer
/feed ... --limit N Override the per-node item limit (default: 20)
/feed ... --before <id> RSM paging: fetch items older than <id> (XEP-0059)
/feed ... --latest Clear saved RSM cursor; return to the newest page
/feed subscribe <service> <node> Subscribe to a PubSub node (XEP-0060)
/feed unsubscribe <service> <node> Unsubscribe from a PubSub node
/feed subscriptions <service> List all subscribed nodes on a service

Each fetched node opens in its own dedicated WeeChat buffer. The RSM cursor is persisted in LMDB so the next /feed call continues from where you left off. Use --latest to reset the cursor and go back to the newest page. Items already displayed in a previous fetch are not re-shown (LMDB deduplication).


Microblogging (XEP-0277 / XEP-0472)

Each displayed item is assigned a short #N alias (shown in green). Use #N in place of the full item-id in any write subcommand when running from within a feed buffer.

Command Description
/feed post <service> <node> [--open] [--title <t>] <text> Publish a post as an Atom entry
/feed post [--open] [--title <t>] <text> Publish from a feed buffer (service/node inferred)
/feed post -- <text> Post body starts with JID-like word — use -- to force short form
/feed reply <service> <node> <item-id|#N> <text> Threaded reply via thr:in-reply-to
/feed reply #N <text> Short form reply from a feed buffer
/feed repeat <service> <node> <item-id> [comment] Boost/repeat a post (XEP-0472 §4.5)
/feed repeat #N [comment] Short form boost from a feed buffer
/feed retract <service> <node> <item-id> Retract (delete) a published post
/feed retract #N Short form retract from a feed buffer
/feed comments <service> <node> <item-id|#N> Fetch the comments node for a post
/feed comments #N Short form fetch comments from a feed buffer

--open sets pubsub#access_model=open (public, no subscription needed). Server errors (forbidden, item-not-found, etc.) are reported in the buffer. Subscribe/unsubscribe feedback is printed in the originating buffer.


Network & status

Command Description
/ping [jid] Send XMPP ping; defaults to server (XEP-0199)
/mood [mood [text]] Publish mood via PEP (XEP-0107)
/activity [category[/specific] [text]] Publish activity via PEP (XEP-0108)
/xml <stanza> Send raw XML (advanced/debug)
/xmpp Show plugin version
/trap Trigger debug breakpoint (developers only)

Interactive picker key bindings

Several commands open an in-buffer interactive picker when invoked without arguments (/edit, /retract, /moderate, /reply, /upload):

Key Action
/ Navigate up/down
Enter Confirm selection
q / Esc Cancel and return to previous buffer

Clone this wiki locally