Skip to content
Emiel Kollof edited this page Mar 25, 2026 · 12 revisions

Usage

Quick start

/account add work user@example.com mypassword
/account connect work

Accounts

/account list                         # list configured accounts
/account add <name> <jid> <password>  # add an account
/account connect <name>               # connect
/account disconnect <name>            # disconnect
/account reconnect <name>             # reconnect (e.g. after network change)
/account delete <name>                # permanently remove
/account register <name> <jid> <password>  # register a new account on the server (XEP-0077)
/account unregister <name>            # cancel account registration on the server (XEP-0077)
/account password <name> <new-password>    # change account password in-band (XEP-0077)

Messaging

Private messages (PM)

/open user@example.com       # open a direct chat buffer
/query user@example.com      # alias for /open
/query user@example.com Hi!  # open and send an opening message

Close a PM buffer with /close. The buffer will not be recreated automatically on the next connect.

Sending messages

Type your message and press Enter in any chat buffer. Or:

/msg <text>    # send text in the current buffer

Multi-User Chat (MUC)

Joining rooms

/join room@conference.example.com
/enter room@conference.example.com   # alias

Leaving rooms

/close        # leave the room and close the buffer
/part         # leave without closing (buffer stays)

Nicklist prefixes

Each occupant's nick is prefixed to show their role/affiliation (XEP-0045):

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

MUC management commands

/topic <text>             # set room topic
/topic                    # clear room topic
/nick <newnick>           # change your nick in the current room
/kick <nick> [reason]     # kick an occupant (requires moderator role)
/ban <jid> [reason]       # ban by JID (requires admin/owner role)
/invite <jid> [reason]    # invite someone to the current room (XEP-0249)
/selfping                 # verify you are still in the room (XEP-0410)

Message features

Message Correction — /edit and /edit-to (XEP-0308)

Opens an interactive picker showing your last 20 non-retracted sent messages. Select one and press Enter; the input bar is pre-filled with the original text ready for editing.

/edit                        # open picker — choose message to correct
/edit-to <id> <new text>     # correct a specific message by ID (used internally by picker)

After selecting a message in the picker, edit the pre-filled text in the input bar and press Enter to send the correction. The corrected line appears with an [edit] prefix in the buffer.

Message Retraction — /retract (XEP-0424)

Deletes one of your own sent messages via an interactive picker:

/retract

Navigate with /, press Enter to confirm, q/Esc to cancel. Supporting clients show a tombstone where the message was.

Message Moderation — /moderate (XEP-0425)

Remove any message from a MUC (requires moderator role):

/moderate [reason]

Opens an interactive picker for the last 20 messages in the room.

Message Reactions — /react (XEP-0444)

React to the last received message:

/react 👍
/react ❤️

The emoji argument (everything after /react) is sent as a single reaction targeting the most recent non-own message in the buffer.

Message Replies — /reply (XEP-0461)

/reply                   # interactive picker — choose which message to reply to
/reply <text>            # reply immediately to the last received message

When using the picker, after selecting a message the input bar is pre-filled with /reply-to <id> ; type your reply and press Enter.

Spoiler Messages — /spoiler (XEP-0382)

/spoiler <text>
/spoiler hint: <hint text> :: <message text>

Supporting clients hide the content behind a spoiler warning with the optional hint text displayed.

/me actions (XEP-0245)

/me <action text>

Displays as: * nick action text


File sharing — /upload (XEP-0363)

/upload                  # interactive file picker
/upload /path/to/file    # upload directly

The file is uploaded via HTTP File Upload and the download URL is sent to the current buffer.


Message Archive Management — /mam

Fetch historical messages from the server archive:

/mam        # fetch last 7 days (default)
/mam 14     # fetch last 14 days

MAM history is cached locally in LMDB and loaded instantly on subsequent connects. Only messages newer than the last cached timestamp are fetched.


Encryption

OMEMO (XEP-0384)

/omemo                         # enable OMEMO for current buffer
/plain                         # disable encryption (plaintext)
/omemo check                   # verify bundle is published on server
/omemo republish                # republish OMEMO:2 + legacy bundle nodes
/omemo status                  # show device ID and status
/omemo reset-keys              # reset key database (forces full renegotiation)
/omemo fetch [jid] [device-id] # force devicelist/bundle refresh
/omemo kex [jid] [device-id]   # force key transport to a specific device

The encryption status bar item shows OMEMO when active (see Configuration).

PGP

/pgp <keyid>    # activate PGP with the given key ID
/pgp status     # show current PGP key
/pgp reset      # clear PGP key

Plaintext

/plain          # disable all encryption for the current buffer

Message status glyphs

Sent messages display an inline glyph that updates automatically:

Glyph Meaning
Pending — sent, no receipt yet
Delivered — recipient's client acknowledged receipt (XEP-0184)
✓✓ Read — recipient marked it displayed (XEP-0333)

Message Styling (XEP-0393)

Incoming messages that use XEP-0393 spans are rendered with WeeChat color/attribute codes:

Markup Rendered as
*bold* Bold
_italic_ Italic
`code` Monospace gray
~strikethrough~ Darkgray
> quote Green prefix

XHTML-IM rendering (XEP-0071)

When an incoming message carries an <html> body, it is rendered with WeeChat formatting. No configuration needed.

HTML element Rendered as
<b>, <strong> Bold
<i>, <em> Italic
<u> Underline
<del>, <s> Darkgray
<code>, <tt> Gray
<pre> Gray preformatted block
<a href="..."> text (blue URL)
<img alt="..."> [alt] placeholder
<br> Newline
<blockquote> Green > prefix per line
<span style="color:..."> Terminal color

Link previews (XEP-0511)

Incoming: OpenGraph metadata arriving in <rdf:Description> stanzas is rendered as a compact preview below the message.

Outgoing: URLs you send trigger a background fetch; metadata is sent as a follow-up stanza so supporting clients show a preview.

To disable outgoing previews:

/set xmpp.look.outgoing_link_preview off
/save

Roster management

/roster                      # display contact list
/roster add <jid> [name]     # add a contact
/roster del <jid>            # remove a contact

Bookmarks (XEP-0402)

/bookmark                              # list bookmarks
/bookmark add [jid] [name]             # add a bookmark (defaults to current room)
/bookmark del <jid>                    # remove a bookmark
/bookmark autojoin <jid> <on|off>      # toggle autojoin for a bookmarked room

Privacy / blocking (XEP-0191)

/block <jid> [jid ...]     # block one or more JIDs
/unblock [jid ...]         # unblock; no arguments unblocks all
/blocklist                  # list all blocked JIDs

Service discovery

/disco [jid]     # list services and features (XEP-0030)
/list [keywords] # search public MUC rooms (XEP-0433)
/ping [jid]      # send XMPP ping (XEP-0199); defaults to server

Ad-hoc commands (XEP-0050)

/adhoc example.com                              # list available commands
/adhoc example.com announce                     # execute a command (form rendered inline)
/adhoc example.com announce <id> field=value    # submit a data form field

Required form fields are marked with *. Multi-step sessions are supported.


PubSub feed reader (XEP-0060)

/feed <service-jid>                  # fetch all subscribed nodes
/feed <service-jid> --all            # discover and fetch all nodes via disco#items
/feed <service-jid> <node>           # fetch a specific node
/feed ... --limit N                  # override item limit (default 20)
/feed ... --before <id>              # page to items older than <id> (XEP-0059 RSM)

Each node is displayed in its own dedicated WeeChat buffer.


Microblogging (XEP-0277 / XEP-0472)

Publish posts, threaded replies, and retractions to XMPP PubSub microblog nodes (Movim, Libervia, ejabberd with PubSub).

/feed post <service-jid> <node> <text>                      # publish a post
/feed reply <service-jid> <node> <item-id> <text>           # threaded reply
/feed retract <service-jid> <node> <item-id>                # delete a post

Examples:

# Publish to your own PEP microblog
/feed post movim.eu urn:xmpp:microblog:0 Hello from WeeChat!

# Reply to a post (get the item-id from /feed movim.eu urn:xmpp:microblog:0)
/feed reply movim.eu urn:xmpp:microblog:0 abc-1234 That's a great point!

# Retract (delete) a post
/feed retract movim.eu urn:xmpp:microblog:0 abc-1234

Incoming posts from contacts' microblog PEP nodes are rendered automatically when a push event is received. See Microblogging for full details.


Presence / status

/mood [mood [text]]                         # publish mood (XEP-0107)
/activity [category[/specific] [text]]      # publish activity (XEP-0108)
/whois [jid]                                # fetch vCard (XEP-0054)
/setvcard <field> <value>                   # publish a vCard field
/setavatar <filepath>                       # publish avatar (XEP-0084)
/buzz                                       # send attention request (XEP-0224)

Interactive picker

Several commands open an in-buffer picker when given no arguments:

Key Action
/ Move selection
Enter Confirm
q / Esc Cancel

Commands that use the picker: /edit, /retract, /moderate, /reply, /upload.


Raw XML (advanced)

/xml <stanza>    # send raw XML to the XMPP stream

Useful for testing server features or debugging. Be careful — sending malformed XML will disconnect you.

Clone this wiki locally