> For the complete documentation index, see [llms.txt](/llms.txt).

# Install a plugin

Install plugins to add new commands to MetaMask Agent Wallet. Every install shows a consent screen listing the plugin's commands, data access, and requested capabilities before anything runs.

## Enable plugins[​](#enable-plugins "Direct link to Enable plugins")

Plugins are a beta feature and are off by default. Installing and running plugins are both blocked until you enable the feature.

```
mm config set experimentalPlugins true

```

## Install from npm[​](#install-from-npm "Direct link to Install from npm")

Agent Wallet fetches the package metadata, shows the consent screen, and installs after you approve. Installs fail closed when the registry is unreachable or the package can't be verified.

```
mm plugins install <package>

# Pass `--accept-permissions` to skip the interactive prompt in scripts and CI
mm plugins install <package> --accept-permissions

```

## Install a local plugin[​](#install-a-local-plugin "Direct link to Install a local plugin")

Local `file:` paths and git sources can't be verified, so you need to opt in first. This is intended for development only. Without the opt-in, these installs are refused with `PLUGIN_UNVERIFIED_SOURCE`.

```
mm config set experimentalAllowUnverifiedInstalls true
mm plugins install file:/path/to/plugin --accept-permissions

```

Prefer installing from the plugin directory rather than a packed tarball. Agent Wallet reads the manifest from the directory, so it can show the full capability consent screen before installing. A tarball shows only the unverified-source banner, because the manifest isn't readable until the package is unpacked. Either way, Agent Wallet persists the approved capabilities after the install completes.

To develop against a directory without copying it, use `mm plugins link`, which shows the same consent screen:

```
mm plugins link /path/to/plugin

```

## Manage installed plugins[​](#manage-installed-plugins "Direct link to Manage installed plugins")

`mm plugins update` shows the consent screen again for any plugin whose version or manifest changed.

```
mm plugins                          # list installed plugins
mm plugins inspect <package>        # show plugin details
mm plugins update                   # update all and re-consent changed manifests
mm plugins uninstall <package>      # remove a plugin

```

## Disable plugins[​](#disable-plugins "Direct link to Disable plugins")

Turn the whole plugin system off at any time. Installed plugin commands then fail with `PLUGIN_BETA_DISABLED` until you re-enable the feature.

```
mm config set experimentalPlugins false

```

## Next steps[​](#next-steps "Direct link to Next steps")

- [Build a plugin](/agent-wallet/plugins/build-a-plugin/)
