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

# Permissions and Shield

> What Rebind asks before a script from someone else runs: the permission screen at install and update, approving edited copies, and Shield's check before any script starts.

Two checks stand between a script and your computer. The **permission
screen** shows what a script from the marketplace or a share can do, and it
runs only within what you allowed. **Shield** reads every script's code before
it starts, including your own, and refuses known tricks.

What each permission token means, and how a script declares one, is in the
[SDK reference](/reference/sdk-reference#permissions).

## Which scripts ask

Scripts under `marketplace/` and `shared/` in your scripts folder are capped:
each runs only within what you approved for it. Scripts you write or put
anywhere else run with what their modeline declares, without asking.

## The permission screen

Before a marketplace script installs, Rebind shows what it can do, in plain
words. Sensitive items, such as running programs, talking to any website,
reading what you copy, seeing your whole screen, or asking AI, are marked, with
the author's reason beside each one or a note that the author gave none. Each
item is one permission token
the script declares, plus the apps or windows it runs in.

Choose **Allow and install** to install it, or **Cancel**. For a paid script
the screen comes before the purchase. If the version that downloads asks for
more than the listing showed, Rebind stops and shows the new items marked
**New**; nothing installs until you allow them.

A script someone shares with you asks the same way when you import it: the
screen titled **Import this shared script?** lists what it asks for, without
reasons, and **Allow and import** imports it.

## Updates

A marketplace update that asks for nothing new installs on its own, as long
as:

* the script is stopped,
* it has no unsaved edits in the editor, and
* its files are exactly the ones that shipped. A script that saved files into
  its own folder, or that you edited, updates only by hand.

An update that asks for more, or that runs in different apps or windows, waits
for you. Scripts shows **Update available** on the script; when you choose
**Update to** the new version, the screen titled **This update asks for more**
lists the new items. Choose **Allow and update**, or **Keep** the version you
have.

## Edited copies

If a capped script's files change so that it asks for more than you approved,
whether you edited them or the script did, it does not start. Scripts shows
**It asks for something you have not approved, so it will not start.** with a
**Review** button. **Allow** approves the new items for that script; **Not
now** leaves it stopped.

## Installing from the terminal

[`rebind install`](/reference/cli#install) prints what a package asks for and
installs nothing until you run it again with `--allow`:

```
rebind install @handle/name --allow
```

For a marketplace listing, `--allow` approves exactly the printed list. If the
version that downloads asks for more, the command refuses and tells you to
install from the app, where the permission screen can show the difference.

## Shield

Shield checks a script's code before it starts the first time, and again after
any change. Rebind sends the script and the modules it requires to Rebind's
API, which looks for known tricks: clipboard stealers, keyloggers, login file
grabbers, code that downloads and runs programs, hidden payloads, screen spies,
wallet address swaps, text that tries to talk the check into passing, and
copies of scripts Rebind took down. A checked script that has not changed
starts without a new check, offline too, until Shield's rules change.
Protected scripts, whose code you cannot read, are checked before they reach
you: in marketplace review, or before a copy is sealed for one person.

A verdict is one of:

* **Clean**: Shield found none of the known tricks. The script starts.
* **Flagged**: the script starts, and its log shows a warning with the reasons,
  such as a script that does not do what its name says or has files Shield
  could not read.
* **Blocked before it ran**: nothing in it ran. The script does not start.

When Rebind refuses to start a script, Scripts opens Shield's verdict: each
reason, the file and lines it points at, the risk, and whether the script
matches known malware.

Some cases that keep a script from starting:

* **Shield could not check this script. Connect to the internet and try
  again.** New or edited code needs Rebind to reach its API.
* **Shield could not read all of this script.** The entry or a module it
  requires is too large for Shield to read. Make them smaller.
* A module edited after the script started is one Shield did not read, so
  `require` refuses it. Start the script again after editing a module.

Shield describes what code does. It does not make an untrusted script safe:
review what a script asks for before you allow it.


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