Read Hyperliquid perp + spot market data via opencli
Hyperliquid Reader (Read-Only)

Read Hyperliquid (app.hyperliquid.xyz) perp + spot market data via opencli (read-only, public info API). Use whenever the user wants Hyperliquid perpetual or spot markets, mark/oracle/mid prices, 24h change, funding rates (hourly or…
--- name: hyperliquid-reader description: > Read Hyperliquid (app.hyperliquid.xyz) perp + spot market data via opencli (read-only, public info API). Use whenever the user wants Hyperliquid perpetual or spot markets, mark/oracle/mid prices, 24h change, funding rates (hourly or annualized APR), open interest, volume, the L2 order book, OHLCV candles, historical funding, or a cross-venue funding comparison (Hyperliquid vs Binance vs Bybit) for funding arbitrage. Triggers: "Hyperliquid funding for BTC", "HL perp markets", "funding on BTC perp", "Hyperliquid order book", "HL open interest", "funding arb Hyperliquid vs Binance", "Hyperliquid candles for SOL", "Hyperliquid spot markets", "PURR price on Hyperliquid", "hyperliquid", "hyperliquid.xyz", "HL DEX". READ-ONLY market data — no account, order, or trade operations. --- # Hyperliquid Reader (Read-Only)
Overview
Reads Hyperliquid — the on-chain perps/spot DEX — for market data via opencli and the hyperliquid plugin in this repo's opencli-plugins/hyperliquid tree (a separate plugin from opencli's built-in adapters, installed via opencli's monorepo subpath syntax).
What you get
- markets — coin, markPx, midPx, oraclePx, change24hPct, fundingHrPct, fundingAprP
- spot-markets — pair, base, markPx, midPx, change24hPct, dayNtlVlm, circulatingSu
- mids — coin, mid
- book — side, level, px, sz, orders
- candles — time, open, high, low, close, volume, trades
- funding-history — coin, fundingRatePct, fundingAprPct, premiumPct, time
Manual install (npx, ZIP)
npx skills add himself65/finance-skills --skill hyperliquid-reader -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/himself65/finance-skills/tar.gz/0a5759bca1ea \
| tar -xz -C ~/.claude/skills --strip-components=4 finance-skills-0a5759bca1ea/plugins/data-providers/skills/hyperliquid-readerNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/d78d665f03b278111b89/hyperliquid-reader.zip" -OutFile "$env:TEMP\hyperliquid-reader.zip"; Expand-Archive "$env:TEMP\hyperliquid-reader.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md9.4 KBREADME.md2.7 KBreferences/1 file · 6.6 KB
Read the files here
Show the full text162 lines
Hyperliquid Reader (Read-Only)
Reads Hyperliquid — the on-chain perps/spot DEX — for market data via opencli and the hyperliquid plugin in this repo's opencli-plugins/hyperliquid tree (a separate plugin from opencli's built-in adapters, installed via opencli's monorepo subpath syntax).
This skill is read-only and market-data only. It reads Hyperliquid's fully public info API for analysis: market tables, funding, order book, and candles. It does NOT read individual accounts, place/modify/cancel orders, or move funds. There is no trading path in the plugin — order placement requires wallet-signed actions on a separate endpoint this adapter never calls.
How it works: every command issues a single POST https://api.hyperliquid.xyz/info with a { "type": "..." } body and normalizes the response. No API key, no wallet, no login, no running app — the info API is public.
Step 1: Ensure opencli + Plugin Are Installed and Ready
Current environment status:
!`(command -v opencli && opencli hyperliquid markets --coin BTC -f json 2>&1 | head -3 && echo "READY" || echo "SETUP_NEEDED") 2>/dev/null || echo "NOT_INSTALLED"`
If the status above shows READY, skip to Step 2. Otherwise:
NOT_INSTALLED — Install opencli
npm install -g @jackwener/opencli
Requires Node.js >= 24 — the hyperliquid plugin declares engines.node >= 24.
SETUP_NEEDED — Install the Hyperliquid plugin
The Hyperliquid adapter is not built into opencli — it's a separate plugin:
opencli plugin install github:himself65/finance-skills/hyperliquid
That's the entire setup — no auth, no launch step. Verify with opencli hyperliquid markets --coin BTC.
Common setup issues
| Symptom | Fix |
|---|---|
opencli: command not found |
npm install -g @jackwener/opencli (Node ≥ 24) |
Unknown command: hyperliquid |
opencli plugin install github:himself65/finance-skills/hyperliquid |
hyperliquid info 429 |
Rate limited — wait a few seconds and retry |
Step 2: Identify What the User Needs
| User Request | Command | Key Flags |
|---|---|---|
| Perp markets overview / top by volume | opencli hyperliquid markets |
--sort, --limit, --coin |
| One perp's price + funding + OI | opencli hyperliquid markets --coin BTC |
— |
| Spot pairs overview | opencli hyperliquid spot-markets |
--sort, --limit, --pair, --canonical-only |
| All current mid prices | opencli hyperliquid mids |
--coin <substring> |
| Order book for a coin | opencli hyperliquid book --coin ETH |
--depth, --n-sig-figs |
| OHLCV candles | opencli hyperliquid candles --coin BTC --interval 1h |
--limit |
| Historical funding for a coin | opencli hyperliquid funding-history --coin BTC |
--hours, --limit |
| Funding arb: HL vs Binance vs Bybit | opencli hyperliquid funding-compare |
--coin, --sort, --limit |
Step 3: Execute the Command
General pattern
# Use -f json or -f yaml for structured output
opencli hyperliquid markets --sort fundingAprPct --limit 15 -f json
opencli hyperliquid funding-compare --sort hlVsBinancePct --limit 20 -f md
opencli hyperliquid candles --coin BTC --interval 4h --limit 50 -f csv
opencli hyperliquid book --coin ETH --depth 5 -f json
Key rules
- Coin symbols are bare perp names —
BTC,ETH,SOL,HYPE(no exchange prefix). Spot pairs areBASE/USDC(e.g.PURR/USDC); forbook/candlesyou can pass either a perp coin or a spot pair. marketsis the default lens for "how is X / the market doing" — it carries mark/oracle/mid price, 24h change, hourly funding + APR, open interest (coins and notional), and 24h volume in one row per perp. Filter with--coinfor a single asset.- Funding is reported two ways —
fundingHrPctis the raw hourly rate as a percent;fundingAprPctannualizes it (hourly × 24 × 365). Lead with APR when comparing carry across assets; use the hourly figure for "what will I pay next hour". funding-compareis the funding-arb screen — it annualizes each venue with its own interval (HL hourly, Binance/Bybit usually 4h) and reportshlVsBinancePct/hlVsBybitPctspreads. Default sort ranks by absolute HL-vs-Binance spread (widest dislocations first). A positivehlVsBinancePctmeans HL longs pay more than Binance longs.bookdefaults to 10 levels per side — raise--depth(max 20) for more, or--n-sig-figs 2..5to aggregate price levels. Compute the spread/mid from the top bid and ask.candlespulls the most recent--limitcandles of--interval(default1h, 100 candles). Valid intervals:1m 3m 5m 15m 30m 1h 2h 4h 8h 12h 1d 3d 1w 1M. Max 5000.-f jsonfor programmatic processing / feeding other skills;-f mdor-f tablefor human-readable output.- NEVER call any write operation. This skill is read-only market data — no account reads, no order placement, modification, or cancellation, and no transfers. The plugin intentionally exposes no write endpoints.
Output format flag (-f)
| Format | Flag | Best for |
|---|---|---|
| Table | -f table (default) |
Human-readable terminal output |
| JSON | -f json |
Programmatic processing, LLM context |
| YAML | -f yaml |
Structured, readable |
| Markdown | -f md |
Reports |
| CSV | -f csv |
Spreadsheet export |
Output columns
markets—coin,markPx,midPx,oraclePx,change24hPct,fundingHrPct,fundingAprPct,openInterest,oiNotional,dayNtlVlm,premiumPct,maxLeveragespot-markets—pair,base,markPx,midPx,change24hPct,dayNtlVlm,circulatingSupply,marketCap,canonicalmids—coin,midbook—side,level,px,sz,orderscandles—time,open,high,low,close,volume,tradesfunding-history—coin,fundingRatePct,fundingAprPct,premiumPct,timefunding-compare—coin,hlAprPct,binanceAprPct,bybitAprPct,hlVsBinancePct,hlVsBybitPct,nextHlFunding
Step 4: Present the Results
- Lead with the headline number, then the table. For
markets --coin BTC: state mark price, 24h change, funding APR, and open interest in prose first. For a fullmarketsdump: lead with the count and the top movers / highest-funding names. - Frame funding in carry terms — e.g. "BTC perp funding is +10.9% APR (longs pay shorts)". Positive funding ⇒ longs pay shorts; negative ⇒ shorts pay longs.
- For
funding-compare, surface the widest dislocations first — name the coin, both venues' APRs, and the spread, and remember the spread is annualized; a real arb also pays exchange/withdrawal frictions, so present it as a screen, not a guaranteed edge. - For
book, report the spread — best bid, best ask, mid, and spread in bps before (or instead of) dumping every level. Don't paste 20 levels unless asked. - For
candles, describe the move — first/last close, high/low, and direction; only show the full OHLCV table when the user wants the series. - Filter aggressively before showing —
marketshas ~180 perps andmids~700 markets; cap to top 15-20 by the relevant sort unless the user asks for the full list. - Cross-reference for trade decisions — Hyperliquid is the on-chain venue; for equities/options context pair it with the
tradingview-readerskill. For funding/basis trades,funding-compareplusmarkets(premium, OI) is the core view.
Step 5: Diagnostics
opencli hyperliquid markets --coin BTC
A successful BTC row confirms opencli, the plugin, and the public API are all reachable. If it errors with Unknown command: hyperliquid, reinstall the plugin (Step 1). A hyperliquid info 4xx/5xx is an upstream API issue — retry after a short wait.
Error Reference
| Error | Cause | Fix |
|---|---|---|
Unknown command: hyperliquid |
Plugin not installed | opencli plugin install github:himself65/finance-skills/hyperliquid |
hyperliquid info 429 |
Rate limited | Wait a few seconds, then retry |
hyperliquid info 422/500 |
Malformed body or upstream issue | Re-check the coin/interval; retry after a wait |
No perp market for coin "X" |
Wrong/unlisted symbol | Run opencli hyperliquid markets (or mids) to find the exact symbol |
Reference Files
references/commands.md— Every command with all flags, output schemas, and analyst workflows (funding carry, basis/arb, spot snapshot)
| 1 | |
| 2 | name hyperliquid-reader |
| 3 | description > |
| 4 | Read Hyperliquid (app.hyperliquid.xyz) perp + spot market data via |
| 5 | opencli (read-only, public info API). Use whenever the user wants |
| 6 | Hyperliquid perpetual or spot markets, mark/oracle/mid prices, 24h |
| 7 | change, funding rates (hourly or annualized APR), open interest, volume, |
| 8 | the L2 order book, OHLCV candles, historical funding, or a cross-venue |
| 9 | funding comparison (Hyperliquid vs Binance vs Bybit) for funding |
| 10 | arbitrage. Triggers: "Hyperliquid funding for BTC", "HL perp markets", |
| 11 | "funding on BTC perp", "Hyperliquid order book", "HL open interest", |
| 12 | "funding arb Hyperliquid vs Binance", "Hyperliquid candles for SOL", |
| 13 | "Hyperliquid spot markets", "PURR price on Hyperliquid", "hyperliquid", |
| 14 | "hyperliquid.xyz", "HL DEX". READ-ONLY market data — no account, order, |
| 15 | or trade operations. |
| 16 | |
| 17 | |
| 18 | # Hyperliquid Reader (Read-Only) |
| 19 | |
| 20 | Reads [Hyperliquid] — the on-chain perps/spot DEX — for market data via [opencli] and the `hyperliquid` plugin in this repo's [`opencli-plugins/hyperliquid`] tree (a separate plugin from opencli's built-in adapters, installed via opencli's monorepo subpath syntax). |
| 21 | |
| 22 | **This skill is read-only and market-data only.** It reads Hyperliquid's fully public info API for analysis: market tables, funding, order book, and candles. It does NOT read individual accounts, place/modify/cancel orders, or move funds. There is no trading path in the plugin — order placement requires wallet-signed actions on a separate endpoint this adapter never calls. |
| 23 | |
| 24 | **How it works**: every command issues a single `POST https://api.hyperliquid.xyz/info` with a `{ "type": "..." }` body and normalizes the response. **No API key, no wallet, no login, no running app** — the info API is public. |
| 25 | |
| 26 | |
| 27 | |
| 28 | ## Step 1: Ensure opencli + Plugin Are Installed and Ready |
| 29 | |
| 30 | **Current environment status:** |
| 31 | |
| 32 | |
| 33 | !`(command -v opencli && opencli hyperliquid markets --coin BTC -f json 2>&1 | head -3 && echo "READY" || echo "SETUP_NEEDED") 2>/dev/null || echo "NOT_INSTALLED"` |
| 34 | |
| 35 | |
| 36 | If the status above shows `READY`, skip to Step 2. Otherwise: |
| 37 | |
| 38 | ### NOT_INSTALLED — Install opencli |
| 39 | |
| 40 | |
| 41 | npm install -g @jackwener/opencli |
| 42 | |
| 43 | |
| 44 | Requires Node.js >= 24 — the `hyperliquid` plugin declares `engines.node >= 24`. |
| 45 | |
| 46 | ### SETUP_NEEDED — Install the Hyperliquid plugin |
| 47 | |
| 48 | The Hyperliquid adapter is **not** built into opencli — it's a separate plugin: |
| 49 | |
| 50 | |
| 51 | opencli plugin install github:himself65/finance-skills/hyperliquid |
| 52 | |
| 53 | |
| 54 | That's the entire setup — no auth, no launch step. Verify with `opencli hyperliquid markets --coin BTC`. |
| 55 | |
| 56 | ### Common setup issues |
| 57 | |
| 58 | | Symptom | Fix | |
| 59 | |---|---| |
| 60 | | `opencli: command not found` | `npm install -g @jackwener/opencli` (Node ≥ 24) | |
| 61 | | `Unknown command: hyperliquid` | `opencli plugin install github:himself65/finance-skills/hyperliquid` | |
| 62 | | `hyperliquid info 429` | Rate limited — wait a few seconds and retry | |
| 63 | |
| 64 | |
| 65 | |
| 66 | ## Step 2: Identify What the User Needs |
| 67 | |
| 68 | | User Request | Command | Key Flags | |
| 69 | |---|---|---| |
| 70 | | Perp markets overview / top by volume | `opencli hyperliquid markets` | `--sort`, `--limit`, `--coin` | |
| 71 | | One perp's price + funding + OI | `opencli hyperliquid markets --coin BTC` | — | |
| 72 | | Spot pairs overview | `opencli hyperliquid spot-markets` | `--sort`, `--limit`, `--pair`, `--canonical-only` | |
| 73 | | All current mid prices | `opencli hyperliquid mids` | `--coin <substring>` | |
| 74 | | Order book for a coin | `opencli hyperliquid book --coin ETH` | `--depth`, `--n-sig-figs` | |
| 75 | | OHLCV candles | `opencli hyperliquid candles --coin BTC --interval 1h` | `--limit` | |
| 76 | | Historical funding for a coin | `opencli hyperliquid funding-history --coin BTC` | `--hours`, `--limit` | |
| 77 | | Funding arb: HL vs Binance vs Bybit | `opencli hyperliquid funding-compare` | `--coin`, `--sort`, `--limit` | |
| 78 | |
| 79 | |
| 80 | |
| 81 | ## Step 3: Execute the Command |
| 82 | |
| 83 | ### General pattern |
| 84 | |
| 85 | |
| 86 | # Use -f json or -f yaml for structured output |
| 87 | opencli hyperliquid markets --sort fundingAprPct --limit 15 -f json |
| 88 | opencli hyperliquid funding-compare --sort hlVsBinancePct --limit 20 -f md |
| 89 | opencli hyperliquid candles --coin BTC --interval 4h --limit 50 -f csv |
| 90 | opencli hyperliquid book --coin ETH --depth 5 -f json |
| 91 | |
| 92 | |
| 93 | ### Key rules |
| 94 | |
| 95 | **Coin symbols are bare perp names** — `BTC`, `ETH`, `SOL`, `HYPE` (no exchange prefix). Spot pairs are `BASE/USDC` (e.g. `PURR/USDC`); for `book`/`candles` you can pass either a perp coin or a spot pair. |
| 96 | **`markets` is the default lens for "how is X / the market doing"** — it carries mark/oracle/mid price, 24h change, hourly funding + APR, open interest (coins and notional), and 24h volume in one row per perp. Filter with `--coin` for a single asset. |
| 97 | **Funding is reported two ways** — `fundingHrPct` is the raw hourly rate as a percent; `fundingAprPct` annualizes it (`hourly × 24 × 365`). Lead with APR when comparing carry across assets; use the hourly figure for "what will I pay next hour". |
| 98 | **`funding-compare` is the funding-arb screen** — it annualizes each venue with its own interval (HL hourly, Binance/Bybit usually 4h) and reports `hlVsBinancePct` / `hlVsBybitPct` spreads. Default sort ranks by **absolute** HL-vs-Binance spread (widest dislocations first). A positive `hlVsBinancePct` means HL longs pay more than Binance longs. |
| 99 | **`book` defaults to 10 levels per side** — raise `--depth` (max 20) for more, or `--n-sig-figs 2..5` to aggregate price levels. Compute the spread/mid from the top bid and ask. |
| 100 | **`candles` pulls the most recent `--limit` candles** of `--interval` (default `1h`, 100 candles). Valid intervals: `1m 3m 5m 15m 30m 1h 2h 4h 8h 12h 1d 3d 1w 1M`. Max 5000. |
| 101 | **`-f json`** for programmatic processing / feeding other skills; `-f md` or `-f table` for human-readable output. |
| 102 | **NEVER call any write operation.** This skill is read-only market data — no account reads, no order placement, modification, or cancellation, and no transfers. The plugin intentionally exposes no write endpoints. |
| 103 | |
| 104 | ### Output format flag (`-f`) |
| 105 | |
| 106 | | Format | Flag | Best for | |
| 107 | |---|---|---| |
| 108 | | Table | `-f table` (default) | Human-readable terminal output | |
| 109 | | JSON | `-f json` | Programmatic processing, LLM context | |
| 110 | | YAML | `-f yaml` | Structured, readable | |
| 111 | | Markdown | `-f md` | Reports | |
| 112 | | CSV | `-f csv` | Spreadsheet export | |
| 113 | |
| 114 | ### Output columns |
| 115 | |
| 116 | `markets` — `coin`, `markPx`, `midPx`, `oraclePx`, `change24hPct`, `fundingHrPct`, `fundingAprPct`, `openInterest`, `oiNotional`, `dayNtlVlm`, `premiumPct`, `maxLeverage` |
| 117 | `spot-markets` — `pair`, `base`, `markPx`, `midPx`, `change24hPct`, `dayNtlVlm`, `circulatingSupply`, `marketCap`, `canonical` |
| 118 | `mids` — `coin`, `mid` |
| 119 | `book` — `side`, `level`, `px`, `sz`, `orders` |
| 120 | `candles` — `time`, `open`, `high`, `low`, `close`, `volume`, `trades` |
| 121 | `funding-history` — `coin`, `fundingRatePct`, `fundingAprPct`, `premiumPct`, `time` |
| 122 | `funding-compare` — `coin`, `hlAprPct`, `binanceAprPct`, `bybitAprPct`, `hlVsBinancePct`, `hlVsBybitPct`, `nextHlFunding` |
| 123 | |
| 124 | |
| 125 | |
| 126 | ## Step 4: Present the Results |
| 127 | |
| 128 | **Lead with the headline number, then the table.** For `markets --coin BTC`: state mark price, 24h change, funding APR, and open interest in prose first. For a full `markets` dump: lead with the count and the top movers / highest-funding names. |
| 129 | **Frame funding in carry terms** — e.g. "BTC perp funding is +10.9% APR (longs pay shorts)". Positive funding ⇒ longs pay shorts; negative ⇒ shorts pay longs. |
| 130 | **For `funding-compare`, surface the widest dislocations first** — name the coin, both venues' APRs, and the spread, and remember the spread is annualized; a real arb also pays exchange/withdrawal frictions, so present it as a screen, not a guaranteed edge. |
| 131 | **For `book`, report the spread** — best bid, best ask, mid, and spread in bps before (or instead of) dumping every level. Don't paste 20 levels unless asked. |
| 132 | **For `candles`, describe the move** — first/last close, high/low, and direction; only show the full OHLCV table when the user wants the series. |
| 133 | **Filter aggressively before showing** — `markets` has ~180 perps and `mids` ~700 markets; cap to top 15-20 by the relevant sort unless the user asks for the full list. |
| 134 | **Cross-reference for trade decisions** — Hyperliquid is the on-chain venue; for equities/options context pair it with the `tradingview-reader` skill. For funding/basis trades, `funding-compare` plus `markets` (premium, OI) is the core view. |
| 135 | |
| 136 | |
| 137 | |
| 138 | ## Step 5: Diagnostics |
| 139 | |
| 140 | |
| 141 | opencli hyperliquid markets --coin BTC |
| 142 | |
| 143 | |
| 144 | A successful BTC row confirms opencli, the plugin, and the public API are all reachable. If it errors with `Unknown command: hyperliquid`, reinstall the plugin (Step 1). A `hyperliquid info 4xx/5xx` is an upstream API issue — retry after a short wait. |
| 145 | |
| 146 | |
| 147 | |
| 148 | ## Error Reference |
| 149 | |
| 150 | | Error | Cause | Fix | |
| 151 | |---|---|---| |
| 152 | | `Unknown command: hyperliquid` | Plugin not installed | `opencli plugin install github:himself65/finance-skills/hyperliquid` | |
| 153 | | `hyperliquid info 429` | Rate limited | Wait a few seconds, then retry | |
| 154 | | `hyperliquid info 422/500` | Malformed body or upstream issue | Re-check the coin/interval; retry after a wait | |
| 155 | | `No perp market for coin "X"` | Wrong/unlisted symbol | Run `opencli hyperliquid markets` (or `mids`) to find the exact symbol | |
| 156 | |
| 157 | |
| 158 | |
| 159 | ## Reference Files |
| 160 | |
| 161 | `references/commands.md` — Every command with all flags, output schemas, and analyst workflows (funding carry, basis/arb, spot snapshot) |
| 162 |
Details
- Updated
- Aug 27, 2026
- License
- MIT
- Stars on the repo
- ★ 3,347
- Checked
- Source
- himself65/finance-skills ↗
- Creator
- himself65 · 24 listings
Similar skills
See all →
PromptCreate a professional and personalized portfolio websiteNetworking engineer portfolio website
MCPBuild financial models, backtest trading strategiesQuant analyst
MCPMonitor portfolio risk, R-multiples, and position limitsRisk manager
SkillExpert in building portfolios that actually land jobsInteractive portfolio
MCPYou need to develop quantitative trading strategiesQuant analyst
SkillQuery TradingView market data through the bundledTradingView MCP (Headless Market Data)More from himself65
SkillEstimate the intrinsic value of a public company using DCFCompany valuation
SkillRead Discord for financial research using opencliDiscord Skill (Read-Only)
SkillGenerate a pre-earnings briefing for any stock using YahooEarnings Preview Skill
SkillGenerate a post-earnings analysis for any stock using YahooEarnings Recap Skill
SkillDeep-dive into analyst estimates and revision trends for anyEstimate Analysis Skill
SkillCalculate ETF premium/discount vs NAV via Yahoo FinanceETF Premium/Discount Analysis Skill