npm package: @morpho-org/cli
Description: CLI interface for Morpho protocol tools
Latest version: 0.1.1

# @morpho-org/cli

Command-line interface for the [Morpho](https://morpho.org) protocol. Query vaults, markets, and positions, prepare transactions, and simulate execution -- all from your terminal.

Supports **Ethereum** and **Base**.

## Install

```bash
npm install -g @morpho-org/cli
```

## Quick start

```bash
# List vaults on Base sorted by APY
morpho query-vaults --chain base --sort apy_desc --limit 5

# Get a specific vault
morpho get-vault --chain base --address 0x...

# Check a user's positions
morpho get-positions --chain base --user-address 0x...

# Prepare a deposit (returns unsigned transactions)
morpho prepare-deposit \
  --chain base \
  --vault-address 0x... \
  --user-address 0x... \
  --amount 1000
```

All commands output JSON to stdout, making them easy to pipe into `jq` or other tools.

## Commands

### Read

| Command | Description |
|---------|-------------|
| `health-check` | Check the health status of connected services |
| `get-supported-chains` | List supported blockchain networks |
| `query-vaults` | Query vaults with optional filtering and sorting |
| `get-vault` | Get details of a specific vault |
| `query-markets` | Query markets with optional filtering |
| `get-market` | Get details of a specific market |
| `get-positions` | Get all positions for a user |
| `get-position` | Get a specific position for a user |
| `get-token-balance` | Get token balance and Morpho-related approval state |

### Write

| Command | Description |
|---------|-------------|
| `prepare-deposit` | Prepare a vault deposit with approval handling |
| `prepare-withdraw` | Prepare a vault withdrawal (supports `max`) |
| `prepare-supply` | Prepare a market supply with approval handling |
| `prepare-borrow` | Prepare a market borrow with health factor check |
| `prepare-repay` | Prepare a market repay (supports `max`) |
| `prepare-supply-collateral` | Prepare a collateral supply with approval handling |
| `prepare-withdraw-collateral` | Prepare a collateral withdrawal (supports `max`) |

### Simulate

| Command | Description |
|---------|-------------|
| `simulate-transactions` | Simulate unsigned transactions with optional Morpho post-state analysis |

## Common options

Most commands accept:

- `--chain <base|ethereum>` -- Target chain (required for most commands)
- `--limit <number>` -- Maximum number of results (1-100)
- `--skip <number>` -- Pagination offset
- `--fields <f1,f2,...>` -- Comma-separated list of fields to include in output
- `--no-simulate` -- Skip transaction simulation (write commands)

Run `morpho <command> --help` for the full option list of any command.

## Write commands

Write commands (`prepare-*`) return an array of unsigned transactions ready for signing and submission. They handle:

- **ERC-20 approvals** -- includes approval transactions when the user's allowance is insufficient
- **USDT reset-to-zero** -- automatically prepends a zero-approval when required by USDT's non-standard behavior
- **DAI permit** -- handles DAI's non-standard approval interface
- **Health factor checks** -- validates borrow/withdrawal safety against existing positions
- **Max amounts** -- pass `--amount max` to withdraw or repay the full balance

## License

MIT