Chat commands are short words you type in a message to Viktor. They change what Viktor does right away, without a settings page. Type a command as a separate word anywhere in your message.

| Command | What it does | Where it works |
|---|---|---|
| `!stop` | Stops what Viktor is doing in the thread. | Slack |
| `!fast` | Runs this one reply on the workspace's fast model. | Slack and Microsoft Teams |
| `!deep` | Runs this one reply on the workspace's deep model. | Slack and Microsoft Teams |
| `!mute` or 🏁 | Mutes Viktor in a channel thread until someone @mentions him. | Slack channel threads |
| Stop button | Stops a run in Viktor app chat. | Viktor app |

## Stop a run with `!stop`

Use `!stop` when Viktor is working on something you no longer want.

1. Send a message to Viktor that contains `!stop`: in his DM, in a group DM, with an @mention, or in a thread he started.
2. Viktor adds a 🛑 reaction to your message.
3. If a run was active, it ends and Viktor posts: "⏹ Stopped. Mention me or reply here when you want me to continue."

`!stop` also drops replies waiting in the queue, cancels scheduled resume steps for the thread, and clears a pending `!fast` or `!deep` choice. The command never reaches the AI model, so it works even if Viktor is stuck in a loop.

`!stop` inside a code span (`` `!stop` ``), a code block or a block quote (`> !stop`) is treated as text, not as a command.

## Choose a model for one reply with `!fast` or `!deep`

1. Add `!fast` or `!deep` to your message to Viktor, for example _"!fast what's on my calendar today?"_
2. In Slack, a ⚡ (`!fast`) or 🧠 (`!deep`) reaction shows on your message until the reply arrives.
3. The reply ends with a footer such as "⚡ Fast reply · <model>" or "🧠 Deep reply · <model>".

The command applies to that one reply only. The next message uses the normal model again. If a message contains both `!fast` and `!deep`, neither applies.

### Set the models behind the commands

Admins pick the models in **Settings → General** ([open it](https://app.viktor.com/settings/general)), under **Model overrides**:

- `!fast`: **For quick, everyday requests**
- `!deep`: **For complex work that benefits from more reasoning**

Each can also be set to **Use default model**. If `!deep` is set to **Use default model**, the command does nothing. If `!fast` is set to it, Viktor still acknowledges the command but uses the default model, and no footer is shown.

The footer is not added in Slack Connect (external) channels or on Viktor's short in-progress messages.

## Mute Viktor in a Slack thread with `!mute` or 🏁

Use mute when people want to keep talking in a thread without Viktor joining in.

1. In a Slack channel thread Viktor is part of, send a message containing `!mute`. Or react with 🏁 (`:checkered_flag:`) to one of Viktor's messages in the thread.
2. Viktor adds a 🔇 reaction to your `!mute` message.
3. The first time the thread is muted, Viktor posts once: "I'm muted in this thread. @mention me to unmute."

While muted, Viktor keeps reading the thread for context but does not reply, including to unmentioned replies in threads he started.

To unmute, @mention Viktor in the thread. He replies to that message as usual, and the mute is cleared.

Mute works only in Slack channel threads. It does not apply to DMs (Viktor always replies there), group DMs (he replies only when mentioned anyway) or Microsoft Teams. A 🏁 reaction only mutes when it is on a message Viktor wrote, and only when the person reacting is allowed to use Viktor.

## Stop a run in Viktor app chat

While Viktor is working in app chat, the send button turns into a stop button. Click it to stop the run. It shows "Cancelling…" while the run stops. See [the Viktor web app](/docs/viktor-web-app).

## Limits by plan and permission

- **Plan:** the commands are available on every plan.
- **Members:** anyone who can use Viktor can send `!stop`, `!fast`, `!deep` and `!mute`.
- **Admins:** only admins can change which models `!fast` and `!deep` use. Members see "Only workspace admins can change model settings."
- **Microsoft Teams:** `!fast` and `!deep` work. `!stop` and `!mute` do not.

## Common problems

**`!stop` did nothing.** Check that the message is directed at Viktor (DM, @mention, or a thread he started) and that `!stop` is not inside a code span or a quote.

**`!deep` didn't change the model.** The `!deep` model is set to **Use default model**. Ask an admin to pick a model in **Settings → General**.

**There is no model footer.** The command was set to the default model, both `!fast` and `!deep` were in the message, or the reply was in an external channel.

**Viktor stopped replying in a thread.** Someone may have muted the thread with `!mute` or 🏁. @mention Viktor to bring him back.

**I use Microsoft Teams and need to stop a run.** Teams has no `!stop` command.

## Related

- [Talk to Viktor](/docs/talk-to-viktor)
- [Approvals](/docs/approvals)
- [Settings overview](/docs/settings-overview)
- [Plans and credits](/docs/plans-and-credits)