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

# Use the CLI directly

Run `mm` commands yourself when you are testing, scripting, or operating in CI without an AI agent. For day-to-day use, prefer [Quickstart](/agent-wallet/quickstart/) and prompt your agent in natural language.

## Prerequisites[​](#prerequisites "Direct link to Prerequisites")

- [Quickstart](/agent-wallet/quickstart/) completed (CLI installed and signed in)
- An Early Access invite from [MetaMask Agent Wallet Early Access](https://metamask.io/agent-wallet)

## 1. Install the CLI[​](#1-install-the-cli "Direct link to 1. Install the CLI")

- npm
- Yarn
- pnpm
- Bun

```
npm install -g @metamask/agentic-cli

```

```
yarn global add @metamask/agentic-cli

```

```
pnpm add -g @metamask/agentic-cli

```

```
bun add --global @metamask/agentic-cli

```

## 2. Sign in[​](#2-sign-in "Direct link to 2. Sign in")

```
mm login
mm auth status

```

During `mm login`, choose QR code, Google, or email. Your sign-in method also determines how you receive 2FA approvals when a transaction needs your confirmation:

| Sign-in method  | 2FA delivery                        |
| --------------- | ----------------------------------- |
| QR code         | MetaMask Mobile push notification   |
| Google or email | Email link with transaction details |

For headless or CI environments:

```
mm login google --no-wait
mm login --token "<cliToken:cliRefreshToken>"

```

## 3. Initialize wallet[​](#3-initialize-wallet "Direct link to 3. Initialize wallet")

Run `mm init` and follow the prompts to choose wallet mode and trading mode, or pass flags explicitly.

### Wallet modes[​](#wallet-modes "Direct link to Wallet modes")

#### Server wallet[​](#server-wallet "Direct link to Server wallet")

Keys are managed and secured server-side in a trusted execution environment (TEE), so agents can't access your main wallet. You retain self-custody.

```
mm init --wallet server-wallet --mode guard

```

#### Bring your own wallet[​](#bring-your-own-wallet "Direct link to Bring your own wallet")

You supply a BIP-39 mnemonic. Useful when you need local key control or an existing seed phrase.

```
export MM_MNEMONIC="word1 word2 ..."
mm init --wallet byok

```

Optionally encrypt the mnemonic at rest with `mm wallet password set`.

### Trading modes (server wallet only)[​](#trading-modes-server-wallet-only "Direct link to Trading modes (server wallet only)")

| Mode                     | CLI flag     | Summary                                                                                           |
| ------------------------ | ------------ | ------------------------------------------------------------------------------------------------- |
| Guard Mode (Recommended) | --mode guard | Designed for everyday traders. Transactions outside your policy limits require 2FA approval.      |
| Beast Mode               | --mode beast | Designed for power users. Malicious transactions are still blocked and surfaced for 2FA approval. |

Guard Mode enforces threat scanning, network and recipient allowlists, address allowlists, and a rolling 24-hour outflow limit. 2FA is required for malicious transactions, allowlist violations, and raising your outflow limit.

Beast Mode keeps only the threat scanning guardrail. 2FA is required for malicious transactions and risky contracts.

See [Trading modes](/agent-wallet/reference/architecture/#trading-modes) for the full guardrail and approval lists.

Switch modes by re-running `mm init` with a different `--mode` value.

### View current settings[​](#view-current-settings "Direct link to View current settings")

```
mm init show

```

## 4. Transfer funds and verify[​](#4-transfer-funds-and-verify "Direct link to 4. Transfer funds and verify")

Get your Agent Wallet address:

```
mm wallet address

```

Transfer funds to this address on the chain you plan to use (from another wallet or exchange).

Verify the deposit:

```
mm wallet balance --chain <chain-id>

```

Confirm your balance before you send transactions from this wallet.

## 5. Send your first transfer[​](#5-send-your-first-transfer "Direct link to 5. Send your first transfer")

```
mm transfer --to <ADDRESS> --amount 0.001 --token native --chain-id 8453 --wait

```

## Machine-readable output[​](#machine-readable-output "Direct link to Machine-readable output")

Pass `--format json` or `--json` for scripts and automation:

```
mm wallet balance --chain 8453 --json
mm auth status --json

```

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

- [Commands reference](/agent-wallet/reference/commands/)
- [Troubleshooting](/agent-wallet/troubleshooting/)
