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

# Snaps CLI

This reference describes the syntax of the Snaps command line interface (CLI) subcommands and subcommand options.

You can specify subcommands and their options using the `yarn mm-snap` command:

```
yarn mm-snap [SUBCOMMAND] [SUBCOMMAND OPTIONS]

```

note

This documentation assumes you created your Snap using the [@metamask/create-snap](https://github.com/MetaMask/snaps/tree/main/packages/create-snap) starter kit, which includes the Snaps CLI. You can also install the CLI directly using the [@metamask/snaps-cli](https://github.com/MetaMask/snaps/tree/main/packages/snaps-cli) package.

### `b`, `build`[​](#b-build "Direct link to b-build")

```
yarn mm-snap build

```

Builds a Snap from source.

`b` is an alias for `build`.

#### `analyze`[​](#analyze "Direct link to analyze")

- Syntax

```
yarn mm-snap build --analyze

```

Enables analyzing the Snap [bundle](/snaps/learn/about-snaps/files/#bundle-file). This uses [webpack-bundle-analyzer](https://github.com/webpack-contrib/webpack-bundle-analyzer) under the hood, which creates an interactive visualization of the contents of your bundle. The visualization is located at the URL displayed in the command line output (for example, `http://localhost:8888`).

info

This option requires [@metamask/snaps-cli](https://github.com/MetaMask/snaps/tree/main/packages/snaps-cli) version 6.7.0 or later.

#### `c`, `config`[​](#c-config "Direct link to c-config")

- Syntax
- Example

```
yarn mm-snap build --config <FILE>

```

```
yarn mm-snap build --config ./snap.config.build.ts

```

Path to the [configuration file](/snaps/learn/about-snaps/files/#configuration-file), which specifies [options](/snaps/reference/config-options/) with which to the build the Snap.

`-c` is an alias for `--config`.

### `e`, `eval`[​](#e-eval "Direct link to e-eval")

```
yarn mm-snap eval

```

Attempts to evaluate the Snap bundle in [Secure ECMAScript (SES)](/snaps/learn/about-snaps/execution-environment/#secure-ecmascript-ses).

`e` is an alias for `eval`.

### `m`, `manifest`[​](#m-manifest "Direct link to m-manifest")

```
yarn mm-snap manifest

```

Validates the Snap [manifest file](/snaps/learn/about-snaps/files/#manifest-file).

`m` is an alias for `manifest`.

#### `fix`[​](#fix "Direct link to fix")

- Syntax

```
yarn mm-snap manifest --fix

```

Enables making any changes to fix the manifest file.

### `sandbox`[​](#sandbox "Direct link to sandbox")

```
yarn mm-snap sandbox

```

Starts a [Snaps sandbox](/snaps/how-to/test-a-snap/#test-in-the-sandbox) server, where you can interact with and test a Snap.

info

This option requires [@metamask/snaps-cli](https://github.com/MetaMask/snaps/tree/main/packages/snaps-cli) version 7.1.0 or later.

### `s`, `serve`[​](#s-serve "Direct link to s-serve")

```
yarn mm-snap serve

```

Locally serves Snap files for testing.

`s` is an alias for `serve`.

#### `p`, `port`[​](#p-port "Direct link to p-port")

- Syntax
- Example

```
yarn mm-snap serve --port <PORT>

```

```
yarn mm-snap serve --port 9000

```

The local server port for testing. The default is `8081`.

`-p` is an alias for `--port`.

### `w`, `watch`[​](#w-watch "Direct link to w-watch")

```
yarn mm-snap watch

```

Rebuilds a Snap from source upon changes.

`w` is an alias for `watch`.

#### `p`, `port`[​](#p-port-1 "Direct link to p-port-1")

- Syntax
- Example

```
yarn mm-snap watch --port <PORT>

```

```
yarn mm-snap watch --port 9000

```

The local server port for testing. The default is `8081`.

`-p` is an alias for `--port`.

## Global options[​](#global-options "Direct link to Global options")

#### `h`, `help`[​](#h-help "Direct link to h-help")

```
-h, --help

```

Displays the help message and exits. You can use this option with `mm-snap` or any subcommand.

`-h` is an alias for `--help`.

#### `version`[​](#version "Direct link to version")

```
--version

```

Displays the version number and exits.
