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.