Skip to content

Admin CLI (xmppctl)

xmppctl is the administrative command-line tool for managing xmppd. It communicates with xmppd-auth via the IPC socket, falling back to direct database access if the auth daemon is unavailable.

User Management#

Add a user#

xmppctl adduser alice@example.com

You'll be prompted for a password interactively. For scripted use:

xmppctl --password "secretpassword" adduser alice@example.com
# or
xmppctl --password-file /path/to/password.txt adduser alice@example.com

Delete a user#

xmppctl deluser alice@example.com

This removes the user's credentials, roster entries, vCard, and offline messages.

Change password#

xmppctl passwd alice@example.com

List users#

xmppctl listusers

Account Security#

Lock an account#

Permanently lock an account (prevents login):

xmppctl lock alice@example.com

Unlock an account#

xmppctl unlock alice@example.com

Invitation Codes#

When in-band registration is enabled with require_invite = true, users need an invitation code to register.

Create an invitation#

xmppctl invite create
# Output: INV-a1b2c3d4e5f6

List active invitations#

xmppctl invite list

Revoke an invitation#

xmppctl invite revoke INV-a1b2c3d4e5f6

Connection Options#

By default, xmppctl connects to the auth daemon via the IPC socket configured in [auth] socket. You can override this:

# Use a specific config file
xmppctl -c /path/to/xmppd.conf adduser alice@example.com

# Direct database access (no auth daemon needed)
xmppctl --db /var/db/xmppd/auth adduser alice@example.com

JID Handling#

xmppctl accepts full JIDs (alice@example.com) and extracts the localpart automatically. The domain portion is informational — the auth daemon stores credentials by localpart only.