# Approvals

Decide whether a bot asks before it acts, set rules for each kind of action, and read and answer an approval request.

Canonical page: https://themachine.myapps.ai/docs/desktop/models/approvals

Bots take real actions, like running programs, changing files, and sending
email from your connected apps. **Approvals** decide which of those a bot
checks with you first.

Two settings work together:

- the **approval level**, a quick choice in the message box, and
- **What needs your OK**, optional rules for each kind of action, in the
  bot's settings.

## The approval levels

![The approval level menu: How should Machine actions be approved? with Ask for approval and Approve for me](/images/docs/desktop/approval-levels.webp)

| Level | What happens | Good for |
|---|---|---|
| **Ask for approval** | Before it runs a command, changes a file, or uses an app, the bot stops and asks. You see exactly what it wants to do. | Learning how bots work. Sensitive work. A new bot you don't know yet. |
| **Approve for me** | Machine says yes for you, so the bot keeps going. It **still stops to ask before anything is sent or deleted**. | Work you're comfortable with. Long tasks you want finished without watching. |

Under **Approve for me**, the menu says *"This provider has no automatic
review; behaves like Ask"*. That means no extra AI checks each step for you.
What the bot may do on its own comes from the level and your rules in **What
needs your OK**, described [below](#what-needs-your-ok).

With either level, a bot changing **its own setup** (its routines, skills,
profile, or model) goes ahead and leaves a note in the chat that you can undo.
See [Notes in the chat](#notes-in-the-chat).

> **Cloud threads are a safe place to experiment**
> In a normal (Cloud) thread, everything happens on the bot's own computer in the
> cloud, not yours. The worst it can do there is make a mess of files on that
> computer, which you can throw away by deleting the thread. That's why many
> people use **Approve for me** for cloud threads once they're comfortable.
> Sending and deleting still ask. Work on your own computer has extra
> protections. See [Safety and stopping](/docs/desktop/this-pc/safety-and-stop).

## Change the level

1. Make sure the bot isn't working. (You can't change it mid-turn.)
2. Click the **approval** button in the message box, next to the paperclip.
   The menu asks *"How should Machine actions be approved?"*.
3. Choose **Ask for approval** or **Approve for me**.

The level is set **per thread**. A bot's **Approval level** in **Bot settings
→ Permissions** is the default for its new threads. Existing threads keep
their own level.

Levels are saved on Machine, so they're the same on all your devices.

## What needs your OK

![The What needs your OK card in a bot's Access settings](/images/docs/desktop/approval-rules.webp)

For finer control, open **Bot settings → Access → What needs your OK**. Each
kind of action gets its own choice: **Default**, **Ask**, **Allow**, or
**Block**.

| Kind of action | With **Default** under Ask for approval | With **Default** under Approve for me |
|---|---|---|
| **Send or post** | Asks | Asks |
| **Delete** | Asks | Asks |
| **Change files** | Asks | Allowed |
| **Run commands** | Asks | Allowed |
| **Open the web** | Asks | Allowed |
| **Use This PC** | Asks | Allowed |
| **Change its own setup** | Allowed, with a note | Allowed, with a note |
| **Everything else** | Asks | Allowed |

A rule you pick always wins:

- **Ask**: always stop and ask, whatever the level.
- **Allow**: always go ahead, whatever the level.
- **Block**: never. The bot stops and the chat says *Blocked by your rules*.

For example, Alex at Northwind keeps the *Inbox* bot on **Approve for me** so
it can sort and draft freely, but sets **Delete** to **Block** so it can never
remove an email.

These rules are kept on the device where you set them. See [Bot
settings](/docs/desktop/bots/bot-settings#what-needs-your-ok).

> **This PC has its own safeguards**
> **Use This PC** covers your own screen, files, and apps. This PC also has its
> own permission requests and ways to stop a bot instantly. See [Safety and
> stopping](/docs/desktop/this-pc/safety-and-stop).
>
> A thread that works on This PC has one more switch, **Ask before each
> action**, in its [folder menu](/docs/desktop/this-pc/overview#control). It's a
> second, separate check: when it's on, Machine also holds each action on your
> computer until you approve it.
> When it's off, that extra check is skipped, but the approval level and the
> **Use This PC** row above still apply. Under **Ask for approval**, the bot
> still asks before it uses your computer.

## Answer a request

![An approval request: the card in the chat and the Pending approval panel](/images/docs/desktop/approval.webp)

When a bot needs your OK:

### A card appears

In the chat, a card says what the bot wants, like **"Scout wants to run a
command"**, with the exact command or change underneath. It says *Waiting for
your answer below*.
### The message box becomes Pending approval

The message box is replaced by a panel that shows:

- the question, like **Run a command?** or **Send email with Gmail?**, with
*Scout is asking · Pending approval* under it,
- one plain sentence on what allowing it does, starting *"If you allow it,
…"*. For example: *"If you allow it, the bot runs this command on its own
computer. Your computer is not touched."*,
- the full details, never shortened.

If several requests are waiting, it shows **1 of 3** and so on.
### Choose

| Button | What happens |
|---|---|
| **Allow once** | This one action runs. The bot carries on. |
| **Allow all 3** | Shown when several requests are waiting. Allows every waiting request in this thread, once each. It never covers anything that sends, deletes, or uses This PC: those always get their own answer. |
| **Deny** | The action doesn't run, and the bot **stops here**. |
| **Cancel turn** | The bot stops completely. |

The card then shows **Allowed** or **Denied**.

**Allow all** never includes anything that sends, deletes, or uses This PC.
Those always need their own answer, one at a time, so you see each one before
it happens.

**When you deny**, the bot doesn't look for another way around your answer.
The turn ends with a note: *You said no, so Scout stopped here*. Send a
message to carry on another way, for example *"Save it as a draft instead."*

If Machine Desktop is in the background, you get a notification naming the
bot and the action, like *Scout: Run a command?*. Click it to go straight to
the request. The bot waits as long as it takes.

## Notes in the chat

Sometimes your rules answer for you. Then there's no card, just a one-line
note in the chat:

| Note | Means | What you can do |
|---|---|---|
| **Changed its own setup** | The bot changed one of its routines, skills, its profile, or its model. The line shows what it ran. | Click **Undo** to ask the bot to put it back the way it was. The button then says **Undo sent**. Wait for a running turn to finish first. |
| **Blocked by your rules** | A rule set to **Block** stopped an action, and the bot stopped there. | Send a message to carry on another way, or change the rule. |

## How to read a request

Most requests are one of a few kinds:

**A command**: a line of text the bot wants to run on its computer. For
example:

```bash
npm install
```

installs the tools a website project needs.

```bash
python analyze.py sales.csv
```

runs a script the bot wrote, on a file you gave it.

**A file change**: which file the bot wants to change, and how.

**An app action**: something in one of your [connected
apps](/docs/desktop/integrations/connected-apps), named in the question, like
*Send email with Gmail?*.

**If you don't understand a request,** click **Deny**, then ask the bot:

> What were you trying to do with that command, and why?

It will explain in plain words, and you can decide.

### Things to look out for

Take a closer look before allowing anything that:

- **deletes** files or folders (look for words like `rm`, `delete`, `del`),
- **sends** something to the outside world (email, messages, uploads),
- **spends** money or changes an account,
- uses a **password** or key you didn't expect.

Machine's own safety rules mean bots shouldn't do these things unless you
asked, but approvals let you check for yourself.

## Stop a bot asking about the same thing

Each request is answered on its own. If a bot keeps asking about one kind of
action you're happy with, set that row to **Allow** in **Bot settings →
Access → What needs your OK**. To make it ask again, set the row back to
**Default** or **Ask**.

Approval requests from Machine bots have no **Always allow** button, so this
is the way to stop a bot asking about one kind of action.
