okx-sentiment-tracker

Use this skill when the user asks about: 'any crypto news', 'latest news', 'market update', 'daily briefing', 'BTC news', 'ETH news', 'news on SOL', 'search…

INSTALLATION
npx skills add https://github.com/okx/agent-skills --skill okx-sentiment-tracker
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$2c

Prerequisites

  • Install okx CLI:
npm install -g @okx_ai/okx-trade-cli
  • Configure credentials in ~/.okx/config.toml
  • Verify setup:
okx news latest --limit 3

OKX News does not support demo mode. Always use --profile live silently — don't mention it unless there's an error.

On "not available in demo" errors: the user's current profile is configured with demo/simulated credentials. Tell the user: "News module does not support demo mode. Please switch to a live profile." Guide them to either:

  • Use --profile live if a live profile exists: okx --profile live news latest
  • Or create one: okx config add-profile AK=<key> SK=<secret> PP=<passphrase> name=live

All commands support --json for raw JSON output.

Quickstart

# Latest news

okx news latest --limit 5

# Today's important news

okx news important --begin $(date -d 'today 00:00:00' +%s000 2>/dev/null || date -v0H -v0M -v0S +%s000)

# BTC news

okx news by-coin --coins BTC

# Search for SEC ETF news

okx news search --keyword "SEC ETF"

# BTC sentiment overview

okx news coin-sentiment --coins BTC

# Trending coins (hottest right now)

okx news sentiment-rank

# Upcoming economic events (today only)

okx news economic-calendar --before $(date -v0H -v0M -v0S +%s000) --after $(date -v+1d -v0H -v0M -v0S +%s000) --limit 100

Intent → Command Mapping

Browse News

latest, by-coin, and search default --importance low, which returns all news (both high and low importance). Pass --importance high only when the user explicitly asks for major / breaking / important news. The dedicated okx news important command is a shortcut for that case.

User says

Command

"what's been happening in crypto lately" / "catch me up on recent news"

okx news latest

"any big news today" / "what are the major stories right now"

okx news important

"what happened in crypto yesterday"

okx news latest --begin <yesterday_0am> --end <today_0am>

"any news on BTC recently" / "what's going on with BTC"

okx news by-coin --coins BTC

"any major updates on ETH or SOL"

okx news by-coin --coins ETH,SOL --importance high

Search News

User says

Command

"any updates on the SEC ETF decision"

okx news search --keyword "SEC ETF"

"what's the latest on stablecoin regulation"

okx news search --keyword "stablecoin regulation"

"any news about the Bitcoin halving"

okx news search --keyword "Bitcoin halving"

Coin Sentiment Analysis

User says

Command

"is the market bullish or bearish on BTC right now" / "how do people feel about BTC"

okx news coin-sentiment --coins BTC

"compare how people feel about ETH vs SOL"

okx news coin-sentiment --coins ETH,SOL

"how has BTC sentiment changed over the past 24 hours"

okx news coin-trend BTC --period 1h --points 24

"show me BTC sentiment over the past week"

okx news coin-trend BTC --period 24h --points 7

"what's hot in crypto right now" / "which coins are getting the most attention"

okx news sentiment-rank

"which coins are people most excited about" / "top bullish coins"

okx news sentiment-rank --sort-by bullish

"which coins have the most negative sentiment"

okx news sentiment-rank --sort-by bearish

Economic Calendar

**CRITICAL — always use BOTH --before AND --after to form a time window.** Using --before alone returns events all the way to 2028 in reverse order — --limit then clips the FARTHEST events, not the nearest. Always pair them.

Semantics (counterintuitive): --before <ts> = events NEWER than ts (lower bound), --after <ts> = events OLDER than ts (upper bound, default=now).

User says

Command

"今天有什么经济数据" / "economic events today"

okx news economic-calendar --before <today_0am_ms> --after <tomorrow_0am_ms> --limit 100

"这周美国有什么重要经济事件"

okx news economic-calendar --region united_states --importance 3 --before <week_start_ms> --after <week_end_ms> --limit 100

"非农什么时候出" / "when is NFP"

okx news economic-calendar --region united_states --importance 3 --before <now_ms> --after <now_plus_60d_ms> --limit 100 then filter event field for "Non Farm" client-side

"CPI 出来了吗" / "latest CPI data"

okx news economic-calendar --region united_states --importance 3 --limit 20 (default after=now fetches past high-importance events; check actual field)

"欧洲央行利率决议" / "ECB rate decision"

okx news economic-calendar --region euro_area --importance 3 --before <now_ms> --after <now_plus_90d_ms> --limit 100 then filter for "Interest Rate Decision"

How to choose before / after:

Intent

Parameter

Explanation

Today's events

--before <today_0am> --after <tomorrow_0am>

Window = today 0:00 → tomorrow 0:00

This week's events

--before <week_start> --after <week_end>

Window = Mon 0:00 → Sun 24:00

Next N days

--before <now> --after <now_plus_Nd>

Window = now → N days ahead

Past events (default)

omit both, or --after <upper_bound>

Default after=now, returns recent past

Historical window

--before <window_start> --after <window_end>

Both bounds explicit

Notes:

  • ⚠️ **ALWAYS use both --before AND --after** for future-event queries. --before alone returns to 2028 and limit clips the wrong end. The only exception is past-event queries where default after=now is correct.
  • Rate limit: 1 request per 5 seconds (IP-based). Do NOT call repeatedly.
  • No keyword/event filter — scan response event field client-side. Use a single API call with --limit 100 and broad window, then filter results locally (do NOT loop calls trying different keywords).
  • When user asks for a specific importance level (e.g. "重要的", "high importance"), pass --importance 3 AND only include importance=3 events in output. Do NOT pad the response with lower-importance events.
  • When searching for a specific event (NFP, CPI, ECB decision), always add --importance 3 to reduce noise — these are all high-importance events. Use --limit 100 and a wide window to ensure the target event is captured.
  • actual="" = not yet released; non-empty = released.
  • Historical data >3 months requires VIP1+.
  • Demo mode not supported — use --profile live silently.
  • --region values are snake_case (e.g. united_states, euro_area). Invalid values silently return empty results (no error). If you get empty results and suspect a region typo, run okx news list-regions to get the full list of 210 valid values, then fuzzy-match the user's input and retry. If unsure of the exact value, **omit --region** and filter results client-side by the region field in the response.

BTC Macro Impact (cross-skill)

User says

Workflow

"BTC 受哪些宏观数据冲击" / "macro impact on BTC this week"

BTC Macro Impact workflow

"这周宏观对加密有什么影响" / "how will macro data affect crypto"

BTC Macro Impact workflow

These queries require parallel execution of economic-calendar + BTC sentiment/news + market data. Do NOT run them sequentially.

Sentiment Anomaly Detection (multi-coin)

User says

Workflow

"哪些币种情绪变化最大" / "any sentiment anomalies" / "which coins flipped sentiment"

Anomaly Detection workflow

"过去一周有什么异动" / "sudden sentiment shifts" / "sentiment reversal"

Anomaly Detection workflow

"有没有突然转看涨/看跌的" / "any coins turning bullish/bearish"

Anomaly Detection workflow

These queries require a broad-then-deep approach: first scan all coins for anomalies, then deep-dive with news correlation. Follow the multi-phase workflow in references/workflows.md — do NOT just pick a few coins to analyze.

Source-Filtered News

Use --platform to filter by news source directly. Always resolve the exact value from okx news platforms — do not guess platform identifiers from the user's wording.

User says

Command

"ChainCatcher 最近报道了什么" / "show me news from ChainCatcher"

okx news latest --platform <platform_id> --limit 10

"Odaily 有什么新闻" / "news from TechFlowPost"

okx news latest --platform <platform_id> --limit 10

"吴说区块链最近有什么" / "news from a specific outlet"

okx news latest --platform <platform_id> --limit 20

Important: When filtering by source, use a larger --limit (10–20) to maximize results, since individual sources typically have fewer articles than the aggregated feed. --importance low (the default) is the right setting here; do not narrow to --importance high.

Posting cadence is uneven across platforms. The API defaults --begin to 72 hours ago, which is too narrow for bursty sources and will often return 0 results. If a --platform-filtered query returns fewer than ~5 items (or 0), **retry with --begin set to 7 days back, then 30 days back** before concluding the source has no data. Resolve candidate platform IDs from okx news platforms; do not hardcode assumptions about which platforms are active.

Cross-Skill Workflows

See references/workflows.md for multi-step scenarios (market overview, daily briefing, etc.) and full MCP tool → CLI mapping.

Command Reference

okx news latest

Get the latest crypto news sorted by time.

okx news latest [--coins BTC,ETH] [--begin <ms>] [--end <ms>]

               [--importance high|low] [--platform <source>]

               [--detail-lvl brief|summary|full] [--lang zh-CN|en-US]

               [--limit 10] [--after <cursor>] [--json]

--importance default is low (returns all news, both high and low). Pass --importance high to narrow to breaking / major news only — or use okx news important.

okx news important

Get high-impact breaking news (reported by multiple sources).

okx news important [--coins BTC,ETH] [--begin <ms>] [--end <ms>]

                  [--detail-lvl brief|summary|full]

                  [--lang zh-CN|en-US] [--limit 10] [--json]

okx news by-coin

Get news for specific coins.

okx news by-coin --coins <BTC,ETH,...>

               [--importance high|low] [--platform <source>]

               [--begin <ms>] [--end <ms>] [--lang zh-CN|en-US]

               [--limit 10] [--json]

--importance default is low (returns all news). Pass --importance high only for breaking / major news.

okx news search

Full-text keyword search with optional filters.

okx news search --keyword <text>

               [--coins BTC,ETH] [--importance high|low]

               [--platform <source>]

               [--sentiment bullish|bearish|neutral]

               [--sort-by latest|relevant]

               [--begin <ms>] [--end <ms>] [--lang zh-CN|en-US]

               [--limit 10] [--after <cursor>] [--json]

--importance default is low (returns all news). Pass --importance high only for breaking / major news.

okx news detail

Get full article content by ID.

okx news detail <id>                  # news ID from previous result

               [--lang zh-CN|en-US] [--json]

okx news by-sentiment

Browse news filtered by sentiment (no keyword needed).

okx news by-sentiment --sentiment <bullish|bearish|neutral>

               [--coins BTC,ETH] [--importance high|low]

               [--sort-by latest|relevant]

               [--begin <ms>] [--end <ms>] [--lang zh-CN|en-US]

               [--limit 10] [--after <cursor>] [--json]

--importance default is low (returns all news). Pass --importance high only for breaking / major news.

okx news platforms

List available news platforms. Use the returned values with --platform on latest, by-coin, or search commands to filter by source.

okx news platforms [--json]

okx news coin-sentiment

Get current sentiment snapshot for specific coins.

okx news coin-sentiment --coins <BTC,ETH,...>

               [--period 1h|4h|24h]  # aggregation granularity, default 24h

               [--json]

Returns: symbol, label (bullish/bearish/neutral/mixed), bullishRatio, bearishRatio, mentionCount.

okx news coin-trend

Get time-series sentiment trend for a coin. Note: uses positional arg (not --coins).

okx news coin-trend <coin>            # positional arg, e.g. BTC

               [--period 1h|4h|24h]  # aggregation granularity, default 1h

               [--points 24]          # trend data points, default 24

               [--json]

trendPoints guide: 1h period → use 24 (last 24h), 4h → use 6, 24h → use 7.

okx news sentiment-rank

Get coin ranking by social hotness or sentiment direction.

okx news sentiment-rank [--period 1h|4h|24h]

               [--sort-by hot|bullish|bearish]  # hot=by mentions (default), bullish, bearish

               [--limit 10]                     # max 50

               [--json]

okx news economic-calendar

Get macro-economic calendar data. Historical data beyond 3 months requires VIP1+.

okx news economic-calendar [--region <country>] [--importance <1|2|3>]

                           [--before <ms>] [--after <ms>]

                           [--limit 100] [--json]

Rate limit: 1 request per 5 seconds (IP). Much stricter than other news commands.

before/after are inverted: --before <ts> = newer than ts (future), --after <ts> = older than ts (past). See [Economic Calendar intent mapping](#economic-calendar) for examples.

Common regions: united_states, china, euro_area, united_kingdom, japan, germany, canada, australia

Importance: 1=low, 2=medium, 3=high

okx news list-regions

List all valid --region values for economic-calendar. Use when a region query returns empty to verify the value.

okx news list-regions [--json]

MCP Tool Reference

Tool

Description

news_get_latest

Latest news sorted by time. Server default importance=high (narrow); pass importance=low to broaden to all news.

news_get_by_coin

News for specific coins (coins is comma-separated string)

news_search

Full-text keyword search with filters (optional sentiment filter)

news_get_detail

Full article content by ID

news_get_domains

List available news source domains

news_get_coin_sentiment

Sentiment snapshot (no trendPoints) or time-series trend (pass trendPoints)

news_get_sentiment_ranking

Coin ranking by hotness or sentiment direction

news_get_economic_calendar

Macro-economic calendar data; rate limit 1/5s

news_list_calendar_regions

List all 210 valid region values for economic-calendar

Coin Symbol Normalization

The API only accepts standard uppercase ticker symbols (e.g. BTC, ETH, SOL). Users may refer to coins by full names, abbreviations, slang, or local-language nicknames. Always resolve these to the correct ticker before passing to any command. If the intended coin is ambiguous, ask the user to confirm before querying.

Empty Results &#x26; Web Search Fallback

OKX news data may be sparse for niche coins or highly specific keyword searches. The API default --begin window is only 72 hours, which alone accounts for many empty results. When a command returns empty or insufficient results, apply these steps in order — do not skip to web search:

  • **If --platform was used** — broaden --begin to 7 days back, then 30 days back, before changing anything else. Bursty sources routinely return 0 items in the default window but dozens over a wider range.
  • **If --importance high was passed** — drop it (default is already low = all news).
  • **Broaden --begin / --end** for any query (not just --platform) when a narrow time window is suspected.
  • **Drop --coins** to get general news if the coin-specific query yielded nothing.
  • Use web search as a supplement — search the web for "<topic> news site:coindesk.com OR site:cointelegraph.com OR site:theblock.co" to gather additional context, then combine with any OKX results into a unified briefing.
  • Be transparent — tell the user which results came from OKX API vs. web search so they can judge source credibility.

This fallback is especially valuable for:

  • Coins with low coverage (e.g. newly listed tokens)
  • Highly specific keyword searches with no matches
  • --platform queries where the chosen source has uneven posting cadence

Known Limitations

Source Coverage

Platform posting cadence varies and changes over time. Some sources publish many articles per day; others post in bursts with quiet stretches in between. A source returning few or zero articles in the default 72-hour window is not evidence that it is inactive — it may simply not have posted recently, or its recent posts may have been deduplicated out.

Before concluding a --platform-filtered query has no data:

  • Broaden --begin to 7 days back, then 30 days back, and retry.
  • If still empty after a 30-day window, report to the user that no recent articles were found for that source and suggest either removing --platform (to fall back to the aggregated feed) or web search.

Do not hardcode assumptions about which platforms are active — resolve candidates from okx news platforms and let the data speak.

Historical Search Limitations

okx news search and okx news by-coin primarily index recent articles (typically today and recent days). Searching with --begin/--end for dates more than ~7 days ago may return empty results even if articles existed at that time. This is an API indexing limitation, not a data absence.

For historical analysis, okx news coin-trend (sentiment trend data) is more reliable than article search — it retains time-series data for longer periods.

Edge Cases

  • Pagination: use --after <cursor> to get next page; cursor comes from nextCursor in response
  • Time parameters: --begin / --end are Unix epoch milliseconds
  • Coins format: comma-separated uppercase symbols, e.g. BTC,ETH,SOL — never pass full names or aliases
  • **coin-trend --points**: always pass explicitly; 1h→24, 4h→6, 24h→7
  • Language: inferred from user's message — --lang zh-CN for Chinese, --lang en-US for English (default)
  • **sentiment-rank --sort-by**: hot=by mention count (default), bullish=most bullish, bearish=most bearish
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card