> ## Documentation Index
> Fetch the complete documentation index at: https://docs.criminal.work/llms.txt
> Use this file to discover all available pages before exploring further.

# Slash & Prefix

> How Criminal's two command surfaces differ, and what to expect in Discord.

## Slash first

Slash commands are the primary surface: they're discoverable, they carry option descriptions, and
they're the only route to grouped commands like `/mod case` or `/config toggle`.

`/help` opens a private panel with a category picker inside the container. It's ephemeral and only
the person who ran it can use the buttons. `/help <command>` shows that command's options, whether
each is optional, and the permissions it requires.

## Prefix second

Prefix commands exist for the moments when an interaction is too slow · raids, spam floods, a member
melting down in a channel. The prefix is per server and off unless set:

```text theme={null}
/config text prefix ,
```

With `,` configured, the moderation core is available as `,ban`, `,unban`, `,softban`, `,kick`,
`,mute`, `,unmute`, `,jail`, `,unjail`, `,warn`, `,clearwarns`, `,purge`, `,slowmode`,
`,nickname`, `,threadlock` (`,tl`).

Purge and ban accept flags rather than options:

```text theme={null}
,purge 50 --user @member --contains "text" --bots --attachments
,ban @member --delete-days 7
```

Some features are *only* available by prefix, because they predate the slash surface and are kept for
compatibility: `,rr add`, `,br setup`, `,r <user> <role>`, and the per-platform social shorthands
(`,youtube add`, `,kick latest post`).

## Panels, not embeds

Replies are Components V2 containers. Practical consequences:

* Buttons and selects are **inside** the card, so a paginated list has its arrows in the same message
  rather than underneath.
* Long text is split across sections automatically · a huge permission dump can't 400 the reply.
* Ephemeral panels (help, config, automod status) are private to the person who opened them.

## Permissions in Discord's UI

Commands declare their own permissions, so Discord greys out what you can't use. The bot re-checks
server-side and replies with a clear denial instead of failing silently · `ui.denied()` produces a
styled refusal naming the missing permission.

## Cooldowns and confirmations

Bulk actions (`/mod unban user:all`, `/unmute member:all`, `/untimeout member:all`) ask for
confirmation before touching the server. Destructive single actions (`/channel nuke`, honeypot reset)
confirm too · there's no single-click path to wiping a channel.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.