hypurrquant
perp-cli
TypeScript

Multi-DEX perpetual futures CLI + MCP server — Pacifica (Solana), Hyperliquid, Lighter (Ethereum). 18 MCP tools for AI-powered trading

Last updated Jul 5, 2026
32
Stars
6
Forks
1
Issues
+1
Stars/day
Attention Score
66
Language breakdown
TypeScript 95.0%
JavaScript 4.5%
Shell 0.5%
Dockerfile 0.0%
Files click to expand
README

perp-cli

npm version npm downloads license

Multi-DEX perpetual futures CLI — Pacifica (Solana), Hyperliquid (HyperEVM), Lighter (Ethereum), Aster (BNB Chain).

npm install -g perp-cli       # global install
perp --json portfolio

Or without global install (restricted environments)

npx -y perp-cli --json portfolio

Features

  • 4 Exchanges — trade, bridge, arbitrage across Pacifica, Hyperliquid, Lighter, Aster
  • Funding Rate Arb — perp-perp + spot-perp scan & one-command dual-leg execution
  • Portfolio — single call returns balances, positions, risk level across all exchanges
  • Funds — deposit, withdraw, transfer, multi-provider bridge (cctp/relay/debridge), inter-exchange rebalance — all in one group
  • Bots — TWAP, grid, DCA, trailing-stop with background job management
  • Agent-First Design--json, --fields, --ndjson, --dry-run, runtime schema introspection
  • Safety — pre-trade validation, response sanitization, client-id deduplication

Setup

# Set exchange keys
perp wallet set pac <SOLANA_KEY>     # Pacifica
perp wallet set hl <EVM_KEY>         # Hyperliquid
perp wallet set lt <EVM_KEY>         # Lighter (API key auto-generated)
perp wallet set aster <API_KEY>      # Aster (BNB Chain)

Or interactive setup wizard

perp setup

Verify

perp wallet show

Same EVM key works for both Hyperliquid and Lighter.

Lighter API Key Index: Indexes 0–3 are reserved by Lighter's frontend (web/mobile). perp-cli defaults to index 4. Override with LIGHTERAPIKEY_INDEX env var, or use perp wallet agent approve lighter --api-key-index <n> for managed agent slots. Valid range: 4–254.

Command Groups

| Group | Description | |-------|-------------| | market | Prices, orderbook, funding, klines, HIP-3 dexes | | account | Balance, positions, orders, margin | | trade | Market/limit/stop orders, close, scale, split execution | | outcome | Hyperliquid Outcome (HIP-4) — binary/range contracts, USDH-quoted, no leverage | | arb | Funding rate arb — scan, exec, close, monitor (perp-perp & spot-perp) | | strategy | 19 bot algorithms (grid, dca, twap, APEX, REFLECT, presets) + nested scripted plans | | funds | Deposit, withdraw, transfer, cross-chain bridge (multi-provider), inter-exchange rebalance | | risk | Risk limits, liquidation distance, guardrails | | wallet | Multi-wallet management, agent wallets (wallet agent ...), margin mode / subaccount / API keys (wallet manage ...), on-chain balances | | history | Execution log, PnL, performance breakdown | | portfolio | Cross-exchange unified overview (replaces former account balance / status / dashboard) | | health | Adapter health check across all 4 DEX | | settings | CLI settings (referrals, defaults, fees) | | backtest | Strategy backtesting | | background | Background process supervisor (tmux sessions for strategies, alerts, etc.) | | alerts | Funding rate alerts (Telegram / Discord) with background daemon | | setup | Interactive setup wizard (alias: init) |

Core Commands

# Portfolio (balances + positions + risk across all exchanges)
perp --json portfolio

Market data

perp --json -e <EX> market list perp --json -e <EX> market book <SYM> perp --json -e <EX> market mid <SYM> # fast mid-price lookup perp --json -e <EX> market funding <SYM> perp --json -e <EX> market kline <SYM> 1h # candlestick data perp --json -e hl market hip3 # list HIP-3 deployed dexes

Trading

perp --json -e <EX> trade buy <SYM> <SIZE> # shortcut for market buy perp --json -e <EX> trade sell <SYM> <SIZE> # shortcut for market sell perp --json -e <EX> trade market <SYM> buy <SIZE> --smart # IOC limit (less slippage) perp --json -e <EX> trade split <SYM> buy 5000 # orderbook-aware split (large orders) perp --json -e <EX> trade close <SYM> perp --json -e <EX> trade flatten # close ALL positions on exchange perp --json -e <EX> trade reduce <SYM> 50 # reduce position by 50% perp --json -e <EX> trade cancel <SYM> # cancel by symbol (or orderId) perp --json -e <EX> trade tpsl <SYM> long # set take-profit / stop-loss perp --json -e <EX> trade leverage <SYM> <N>

Account

perp --json -e <EX> account balance perp --json -e <EX> account positions perp --json -e <EX> account pnl # realized + unrealized + funding perp --json -e <EX> account funding # personal funding payment history perp --json -e <EX> account settings # per-market leverage & margin mode

Outcome markets (Hyperliquid HIP-4 — fully-collateralized binary contracts, USDH-quoted, $10 min)

perp --json outcome list # active markets + Yes/No mid prices perp --json outcome view <outcome> # symmetric Yes/No book + underlying gap + expiry perp --json outcome book <outcome> <side> # one-side orderbook (e.g. '1 yes' or '1 0') perp --json outcome positions # open outcome holdings perp --json outcome orders # open outcome orders perp --json outcome buy <outcome> <side> <usd> --dry-run # validate before submit perp --json outcome buy <outcome> <side> <usd> # market buy in USDH notional perp --json outcome sell <outcome> <side> <usd> --limit <px> --tif gtc perp --json outcome cancel <outcome> <side> <oid>

Funding rate arbitrage

perp --json arb scan --min 5 # perp-perp opportunities perp --json arb scan --mode spot-perp # spot+perp opportunities perp --json arb scan --rates # funding rates across all exchanges perp --json arb scan --basis # cross-exchange basis opportunities perp --json arb scan --gaps # cross-exchange price gaps perp --json arb scan --hip3 # HIP-3 cross-dex funding spreads perp --json arb scan --live # continuous live monitoring perp --json arb exec <SYM> <longEx> <shortEx> <$> # perp-perp dual-leg entry perp --json arb exec <SYM> spot:<exch> <perpEx> <$> # spot+perp entry perp --json arb config # show arb defaults perp --json arb history # past arb trade performance (alias: log)

Funds (deposit, withdraw, transfer, bridge, rebalance)

perp --json funds deposit hyperliquid 100 perp --json funds withdraw pacifica 50 perp --json funds transfer 100 <ADDRESS> # HL internal transfer (instant) perp --json funds bridge quote --from solana --to arbitrum --amount 100 perp --json funds bridge send --from solana --to arbitrum --amount 100 # auto-cheapest provider perp --json funds bridge exchange --from pacifica --to hyperliquid --amount 100 perp --json funds rebalance check # balances across exchanges perp --json funds rebalance plan # compute optimal moves perp --json funds rebalance execute --auto-bridge # withdraw → bridge → deposit perp --json funds info # all routes & limits

Risk

perp --json risk limits --max-leverage 5 perp --json risk liquidation-distance

Strategies (19 bot algorithms + nested scripted plans)

perp strategy list-strategies # list all available strategies perp strategy run <strategy> [symbol] # run any strategy perp strategy apex [symbol] # APEX autonomous orchestrator perp strategy reflect # trading performance analysis perp strategy preset-list # list strategy presets perp --json strategy twap <SYM> buy <SIZE> 30m perp --json strategy grid <SYM> --range 5 --grids 10 --size 100 perp strategy plan example # scripted multi-step plan format perp --json strategy plan validate <FILE> # validate scripted plan perp --json strategy plan execute <FILE> --dry-run # dry-run scripted plan

Background process supervisor (tmux)

perp background list # list running jobs perp background stop <ID> # stop a job perp background logs <ID> -f # follow logs

Telegram Alerts

Funding rate alerts via Telegram with background daemon support.

# Interactive setup (BotFather token + chat ID auto-detection)
perp alerts setup

Add alert rules

perp alerts add ETH 30 # alert when ETH funding > 30% annualized perp alerts add --all 50 # alert for any symbol > 50%

Test & manage

perp alerts test # send test message perp alerts list # show active rules

Run daemon

perp alerts start # foreground perp alerts start --background # tmux background daemon perp alerts stop # stop background daemon

Setup flow: BotFather token → bot validation → send /start to bot → auto-detect chat ID → test message.

Exchange flag: -e hyperliquid / -e pacifica / -e lighter / -e aster (aliases: hl, pac, lt).

Global flags: --json, --fields <f>, --ndjson, --dry-run, --dex <name> (HIP-3), -w, --wallet <name>.

MCP Server

Glama MCP server

perp-cli includes a full-featured MCP server (18 tools, 3 resources, 2 prompts) for Claude Desktop, Cursor, and other MCP clients.

No API keys required for market data — explore prices, orderbooks, funding rates, and arb opportunities without any setup. Add keys only when you want to trade.

{
  "mcpServers": {
    "perp-cli": {
      "command": "npx",
      "args": ["-y", "-p", "perp-cli", "perp-mcp"]
    }
  }
}

Optional: add keys for trading and account data:

{   "env": {     "PACIFICAPRIVATEKEY": "your-solana-key",     "HYPERLIQUIDPRIVATEKEY": "your-evm-key",     "LIGHTERPRIVATEKEY": "your-evm-key",     "ASTERAPIKEY": "your-api-key"   } }

Read-only tools (no keys): getmarkets, getorderbook, getfundingrates, getprices, arbscan, health_check

Account & trading tools (keys required): getbalance, getpositions, portfolio, tradepreview, tradeexecute, tradeclose, getfundinganalysis, getpnlanalysis, getarb_compare

Resources: market://prices, market://funding-rates, perp://schema

Prompts: trading-guide, arb-strategy

AI Agent Skill

Drop-in skill for Claude Code, Cursor, Codex, Gemini CLI, and other agent CLIs. Bundles a non-interactive command guide, ops playbook, strategy framework, and reusable shell scripts (preflight, arb monitor, validation) so your agent stops at the right confirmation points and never wedges on interactive wizards.

Install

# Claude Code — slash command
/install-skill hypurrquant/perp-cli

Cursor / Codex / generic agent CLIs — via npx

npx skills add hypurrquant/perp-cli

Manual install (any agent that reads a Skills directory)

git clone https://github.com/hypurrquant/perp-cli.git cp -R perp-cli/skills/perp-cli ~/.claude/skills/ # or your CLI's skills dir

The skill ships inside the npm package (perp-cli/skills/perp-cli), so a global install also makes it available locally:

npm install -g perp-cli@latest
ls "$(npm root -g)/perp-cli/skills/perp-cli"

What's in the skill

| File | Purpose | |------|---------| | SKILL.md | Top-level agent guide — rules, workflows, examples | | references/commands.md | Full non-interactive command reference (every group) | | references/agent-operations.md | Setup flows, idempotency, error handling, common mistakes | | references/strategies.md | Funding-arb decision framework + risk management | | scripts/preflight.sh | Install + wallet + connectivity + risk readiness check | | scripts/arb-monitor.sh | Live monitor for open arb positions | | scripts/spot-perp-scan.sh | Scan spot+perp opportunities with balance context | | scripts/funding-analysis.sh | Cross-exchange funding overview / per-symbol drilldown | | scripts/validate-arb.sh | Pre-execution validation (price / balance / risk / dry-run) |

See skills/perp-cli/SKILL.md for the full agent guide.

Agent-First CLI Design

Built following agent-first CLI principles:

# Every command returns structured JSON envelope
perp --json portfolio

→ { "ok": true, "data": {...}, "meta": { "timestamp": "..." } }

Filter output to specific fields (saves tokens)

perp --json --fields totalEquity,risk portfolio

Stream large lists as NDJSON (one JSON per line)

perp --json --ndjson -e hl market list

Pre-validate before executing

perp --json -e hl trade check BTC buy 0.01 perp --json --dry-run -e hl trade market BTC buy 0.01

Idempotent orders with client ID

perp --json -e hl trade market BTC buy 0.01 --client-id my-unique-id

All responses are auto-sanitized (control chars stripped, prompt injection patterns blocked). Errors include retryable flag — only retry when true.

License

MIT

© 2026 GitRepoTrend · hypurrquant/perp-cli · Updated daily from GitHub