@morpho-dev/router-cli
v0.1.13
Published
CLI to run an opinionated Morpho Router.
Readme
@morpho-dev/router-cli
Status: Alpha – this CLI is under active development and interfaces/behavior are subject to change.
CLI to run a router that serves offers and performs validations.
Install
- Global install
pnpm add -g @morpho-dev/router-cli- One-off (no install)
pnpx @morpho-dev/router-cli --help
# or
pnpm dlx @morpho-dev/router-cli --helpRunning router api
Use router-cli to run a Router:
- Router starts on http://localhost:7891 by default
- Seed random offers with --seed for testing
- Enable validation with --validation flag
- Load offers from JSON file with --file
- Start a local UI alongside the Router with --ui
- --db-offer-endpoint plug the router on top of a postgres
Examples:
# Router with seeded random offers and UI
router-cli start --seed 100 --ui
# Router with postgres database
router-cli start --db-offer-endpoint <db url>
# Router with validation enabled
router-cli start --validation
# Router with offers loaded from file
router-cli start --file offers.json
# Router with custom port
router-cli start --router-port 8080Standalone UI
You can also run the UI without starting a local Router server, pointing it to any Router endpoint.
- By default, it targets the staging Router URL.
- Override the target with
--router-url.
# UI against default remote Router (https://router.morpho.dev)
router-cli ui
# UI against a custom Router endpoint (e.g., local)
router-cli ui --router-url http://localhost:7891The Router API is available at http://localhost:7891 (or your custom port) and supports the same endpoints as the production Router.
CLI reference
Global
Usage: router-cli [options] [command]
CLI to run an opinionated Morpho Router.
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
start [options] Start a Router server.
tunnel [options] Expose the local Router via ngrok
mempool [options] Start a local chain with the mempool contract
help [command] display help for commandstart
Usage: router-cli start [options]
Start a Router server.
Options:
--port <n> (default: 7891, env: ROUTER_PORT)
--chain <chain> (choices: "ethereum", "base",
"ethereum-virtual-testnet", "anvil", default: "ethereum",
env: ROUTER_CHAIN)
--rpc-url <url> (env: ROUTER_RPC_URL)
--router-url <url> (default: "https://router.morpho.dev", env:
ROUTER_REMOTE_URL)
--store <type> (choices: "pglite", "pg", default: "pglite", env:
ROUTER_STORE)
--db-endpoint <url> (env: ROUTER_DB_ENDPOINT)
--log-level <level> (choices: "trace", "debug", "info", "warn", "error",
"fatal", "silent", default: "info", env:
ROUTER_LOG_LEVEL)
--block-window <n> Block window to get logs from (default: 100)
--seed <n> Seed random offers to router (default: 0)
--file <path> Seed offers from a JSON file
--ui Start minimal UI (default: false)
-h, --help display help for commandtunnel
Usage: router-cli tunnel [options]
Expose the local Router via ngrok
Options:
--port <n> (default: 7891, env: ROUTER_PORT)
--ngrok-authtoken <token> (env: NGROK_AUTHTOKEN)
-h, --help display help for commandmempool
Usage: router-cli mempool [options]
Start a local chain with the mempool contract
Options:
--port <port> (default: 8545, env: MEMPOOL_PORT)
--fork-url <url> (default: "https://ethereum-rpc.publicnode.com",
env: MEMPOOL_FORK_URL)
--block-number <number> (default: 0)
-h, --help display help for command