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

# Command access

> Disable commands per channel, restrict them to roles, and ignore people entirely.

Three separate controls for who can run what, and where. They stack — a command has to pass all three to run.

| Control                                    | Scope            | Question it answers                                     |
| ------------------------------------------ | ---------------- | ------------------------------------------------------- |
| [`command`](#per-command-control)          | One command      | Is this command allowed in this channel, for this role? |
| [`module`](#per-category-control)          | A whole category | Is this whole category allowed here?                    |
| [`ignore`](#ignoring-members-and-channels) | Everything       | Does mira respond to this person or channel at all?     |

All three require **Administrator**.

## Per-command control

### Disabling in a channel

<CodeGroup>
  ```javascript One channel theme={null}
  !command disable #general ppsize
  ```

  ```javascript Everywhere theme={null}
  !command disable all ppsize
  ```

  ```javascript Turn it back on theme={null}
  !command enable #general ppsize
  !command enable all ppsize
  ```
</CodeGroup>

Passing `all` as the channel applies to every text channel at once. `command enable` only needs **Manage Server**, so a moderator can undo an over-eager disable without full Administrator.

```javascript theme={null}
!command disable list
!command disable view ppsize
```

`list` shows everything disabled anywhere; `view` shows which channels one specific command is disabled in.

### Restricting commands to roles

```javascript theme={null}
!command restrict @DJ play
```

Once a command has any role restriction, **only** members with a listed role can run it — regardless of their permissions. Running the command again with the same role removes the restriction, so it toggles.

```javascript theme={null}
!command restrict list
```

Aliases: `require`, `allow`, `lock`.

<Tip>
  This is the cleanest way to build a DJ role. Restrict `play`, `skip`, `queue` and `volume` to `@DJ` and the music commands become staff-only without touching Discord permissions at all.
</Tip>

## Per-category control

Same shape, applied to a whole category of commands at once.

<CodeGroup>
  ```javascript Disable a category here theme={null}
  !module disable #general fun
  ```

  ```javascript Disable it everywhere theme={null}
  !module disable all fun
  ```

  ```javascript Re-enable theme={null}
  !module enable #general fun
  ```

  ```javascript Restrict to a role theme={null}
  !module restrict @Staff moderation
  ```
</CodeGroup>

```javascript theme={null}
!module disable list
!module disable view fun
!module restrict list
```

Valid category names are the ones from `!help` — `moderation`, `configuration`, `utility`, `social`, `audio`, `media`, `roleplay`, `casino`, `fun`, `lastfm`, `spotify` and so on.

Aliases for the group: `cog`, `category`.

## Ignoring members and channels

The blunt instrument. An ignored member or channel gets no response from mira at all — commands are dropped silently, with no error message.

<CodeGroup>
  ```javascript Ignore someone theme={null}
  !ignore @spammer
  ```

  ```javascript Ignore a channel theme={null}
  !ignore #memes
  ```

  ```javascript Stop ignoring theme={null}
  !ignore remove @spammer
  ```

  ```javascript View the list theme={null}
  !ignore list
  ```

  ```javascript Clear everything theme={null}
  !ignore reset
  ```
</CodeGroup>

`ignore` toggles, so running it twice on the same target undoes it. Aliases: `unignore`, `ignr`.

Ignoring a channel is different from `commandonly` in the [prefixes](/getting-started/prefixes#restricting-where-commands-work) page: **ignore** stops mira responding in that channel, **commandonly** requires everything in that channel to *be* a command.

## Choosing between them

<AccordionGroup>
  <Accordion title="Keep bot spam out of serious channels">
    Disable the noisy modules rather than ignoring the channel — that way moderation commands still work there.

    ```javascript theme={null}
    !module disable #general fun
    !module disable #general roleplay
    ```
  </Accordion>

  <Accordion title="One command is being abused">
    Restrict it to a role, or disable it outright.

    ```javascript theme={null}
    !command restrict @Staff impersonate
    !command disable all pingall
    ```
  </Accordion>

  <Accordion title="Someone won't stop using the bot">
    Ignore them. It's silent, so they get no feedback to react to.

    ```javascript theme={null}
    !ignore @them
    ```
  </Accordion>

  <Accordion title="A whole channel should be bot-free">
    Ignore the channel.

    ```javascript theme={null}
    !ignore #serious-discussion
    ```
  </Accordion>
</AccordionGroup>

## Command reference

| Command                               | Permission    | Description                               |
| ------------------------------------- | ------------- | ----------------------------------------- |
| `command disable <channel> <command>` | Administrator | Disable a command in a channel (or `all`) |
| `command enable <channel> <command>`  | Manage Server | Re-enable it                              |
| `command disable list`                | Administrator | View all disabled commands                |
| `command disable view <command>`      | Administrator | Where one command is disabled             |
| `command restrict <role> <command>`   | Administrator | Toggle a role restriction                 |
| `command restrict list`               | Administrator | View all restrictions                     |
| `module disable <channel> <cog>`      | Administrator | Disable a category                        |
| `module enable <channel> <cog>`       | Manage Server | Re-enable a category                      |
| `module disable list`                 | Administrator | View disabled categories                  |
| `module disable view <cog>`           | Administrator | Where a category is disabled              |
| `module restrict <role> <cog>`        | Administrator | Toggle a category restriction             |
| `module restrict list`                | Administrator | View category restrictions                |
| `ignore <target>`                     | Administrator | Toggle ignoring a member or channel       |
| `ignore list`                         | Administrator | View ignored targets                      |
| `ignore reset`                        | Administrator | Clear the ignore list                     |

## Disabling passive features

Separate from commands, some of mira's automatic behaviours — reaction polls on `y/n`, voice message transcription, GitHub link previews — can be switched off per channel:

```javascript theme={null}
!events disable transcribe #general
!events disable all y/n
!events enable transcribe #general
!events list
```

| Event        | Aliases                  | What it does                         |
| ------------ | ------------------------ | ------------------------------------ |
| `y/n`        | `yes/no`                 | Adds 👍 👎 to messages containing it |
| `y/n/a`      | `yes/no/abstain`         | Adds 👍 👎 ❓                         |
| `v/s`        | `versus`                 | Adds ⬅️ ➡️                           |
| `c/x`        | `a/d`, `confirm/decline` | Adds ✅ ❌                             |
| `l/h`        | `love/hate`              | Adds ❤️ 💔                           |
| `a/b`        | `a or b`                 | Adds 🅰️ 🅱️                         |
| `transcribe` | `transcript`, `vm`       | Transcribes voice messages           |
| `github`     | `repo`, `commit`         | Expands GitHub links                 |
| `conversion` | `convert`                | Repairs unplayable attachments       |
| `reactions`  | `reacts`                 | Reaction-based features              |
| `errors`     | `error`                  | Error messages in chat               |

Requires **Manage Server**. Group aliases: `event`, `evnt`, `listener`.
