Skip to main content
Every command is written the same way: the command name, then its arguments, separated by spaces.
Syntax

Required and optional

The brackets are notation, not something you type. Write !cmd hello, not !cmd <hello>.
Optional arguments are positional, so you can drop them off the end but you can’t skip one in the middle. Given !cmd [wow] [cool] <yeah>, typing !cmd apple banana fills wow and cool, leaving yeah missing. To skip cool, pass an empty pair of quotes:
Example

Arguments with spaces

Arguments end at the first space. If one needs a space inside it and another argument comes after, wrap it in double quotes.
Example
Without the quotes, very becomes cool and cool becomes yeah, and everything after that shifts out of place.
The last argument is greedy: it takes everything remaining, spaces included. !cmd apple banana this is all one argument works fine, no quotes needed.
To include a literal quote mark inside a quoted argument, escape it with a backslash: "she said \"hi\"".
iOS and macOS autocorrect replaces straight quotes with curly ones ("like this"). The bot only recognises straight quotes, so a quoted argument that looks correct may still fail. Turn off Settings > General > Keyboard > Smart Punctuation if it keeps happening.

Flags

Flags modify how a command runs. They can appear anywhere after the command name and are not case sensitive. All of these are read identically, so use whichever your keyboard gives you:
That last one matters on mobile. iOS autocorrect turns -- into an em dash as you type. The bot accepts it, so there’s nothing to fix and nothing to disable.
Some flags are switches that are either on or off. Others take a value directly after them:
Example
Flag values follow the same spacing rule as arguments. A value ends at the next space unless you quote it:
Example
Flags that accept a value can take several at once, separated by | or ,. For example, --contains leaked|leaking matches either word.

Users, channels, and roles

Anywhere a command asks for a user, channel, or role, you can pass any of these:
Partial names match the first result found. If a server has several similar names, use a mention or an ID to be certain you’re targeting the right one.
Last modified on August 3, 2026