Generated banner for Tradingview Reader
Generated logo for Tradingview Reader

Tradingview Reader

Alex YangCommunityCreated by Alex Yang

  • Skill
  • Tool integration
  • Automation and integrations
  • MIT
  • Low risk

From the author

Read the user's local TradingView desktop app through opencli: quotes, options chains with greeks and per-strike IV, options expiries, screener results across stocks, crypto, forex, futures, and bonds, gainers and losers, news headlines and full stories, alerts (active, fired, offline fires), watchlists including colored flag lists, symbol search, chart state, and chart screenshots. Use this skill whenever the user asks for any of these from TradingView ("TV") — for example an options chain, puts, or IV skew for a ticker, an oversold-stock screen, their red flag list, which alerts fired, or a screenshot of their chart. For plain quotes, TA readouts, scans, or futures without the desktop app, prefer tradingview-mcp. Read-only: it never places trades or edits watchlists, alerts, or layouts.
— the description by Alex Yang

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The tradingview-reader skill enables an AI agent to extract data from a local TradingView desktop application on macOS. By connecting via the Chrome DevTools Protocol, the skill retrieves information such as options chains with greeks, screener results, news, watchlists, and chart states. It is designed for financial research and analysis, providing a read-only interface that does not execute trades or modify user configurations.

What it does

  • Retrieves options chains including greeks, IV, and strike data
  • Fetches screener results across multiple asset classes
  • Accesses user-specific watchlists and alert statuses
  • Captures current chart state and screenshots
  • Provides news headlines and full story content
  • Performs symbol searches and lookup

When to use it

  • When you need to analyze options data with greeks and IV skew
  • When you need to access account-specific data like watchlists or alerts
  • When you need to capture the current state or a screenshot of a TradingView chart
  • When you need to perform complex screening across stocks, crypto, or forex

Advantages

  • Directly accesses data from the user's local TradingView desktop app
  • Provides access to account-bound information like watchlists and alerts
  • Supports structured data output for programmatic analysis
  • Read-only design ensures no accidental trades or configuration changes

Usage examples

“Get the options chain for NVDA for the June 2026 expiry.”
The agent retrieves the options chain for NVDA, filtered by the specified expiry date, including greeks and IV data.
“Show me my red flag list from TradingView.”
The agent queries the user's watchlists and displays the symbols contained within the red-flagged list.
“Which of my alerts have fired recently?”
The agent retrieves the alert log and lists the status of recently triggered alerts.
“Take a screenshot of my current chart.”
The agent captures the current chart state from the active TradingView tab and saves a screenshot to the specified path.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/himself65/tradingview-reader/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip tradingview-reader.zip -d .agents/skills

Documentation by Alex Yang

TradingView Reader (Read-Only)

If your host has not already executed the shell probes below (for example, in Codex), run the commands inside the ! wrappers with its shell tool before choosing a setup path. Use the actual output; if shell access is unavailable, report that limitation.

Reads TradingView's desktop macOS app for quotes, options chains, and chart state via opencli and a CDP attach to the running TradingView.app process. Powered by the tradingview plugin in this repo's opencli-plugins/tradingview tree (a separate plugin from opencli's built-in adapters, installed via opencli's monorepo subpath syntax).

This skill is read-only. Designed for analysis: pulling options chains, checking IV/greeks, capturing chart state. It does NOT place trades, post ideas, modify watchlists, or change chart layouts.

Headless alternative: for plain quotes, TA readouts, screeners, futures, or a greeks-free options chain, prefer the sibling tradingview-mcp skill (bundled MCP server, no desktop app, no CDP relaunch). Use this skill when you need greeks / per-strike IV skew, expiries with contract counts, or account-bound data (watchlists, alerts, charts, TV news).

Important: Unlike browser-based opencli readers (twitter, linkedin), this one talks directly to a running TradingView desktop app over Chrome DevTools Protocol. The user must (a) have TradingView.app installed, and (b) be logged in inside that app. The plugin handles relaunching with the debug port.

How it works: data commands read the app's session cookies over CDP and call TradingView's HTTP APIs from Node directly, so no Browser Bridge extension or apps.yaml registration is needed.


Step 1: Ensure opencli + Plugin Are Installed and Ready

Current environment status:

!`(command -v opencli && opencli tradingview status 2>&1 | head -5 && 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 tradingview plugin installed in the next step declares engines.node >= 24.

SETUP_NEEDED — Install the TradingView plugin and launch with CDP

The TradingView adapter is not built into opencli — it's a separate plugin:

# Install the plugin
opencli plugin install github:himself65/finance-skills/tradingview

# Relaunch TradingView.app with CDP enabled (one-time per session)
opencli tradingview launch

The launch step quits the running TradingView and reopens it with --remote-debugging-port=9222. Warn the user to save chart layouts first if they have unsaved drawings.

Common setup issues
SymptomFix
opencli: command not foundnpm install -g @jackwener/opencli (Node ≥ 24)
Unknown command: tradingviewopencli plugin install github:himself65/finance-skills/tradingview
Cannot reach CDP at http://127.0.0.1:9222App not launched with debug port — run opencli tradingview launch
No tradingview.com cookies foundApp is open but logged out — log in inside the desktop app
No TradingView tab foundOpen any chart or symbol page in TradingView, then retry
Empty chain / 0 contractsSubscription tier on the logged-in account doesn't include options for this symbol

Step 2: Identify What the User Needs

Setup / chart inspection
User RequestCommandKey Flags
Setup / connection checkopencli tradingview status—
Relaunch app with CDPopencli tradingview launch--port 9222
What's on the chartopencli tradingview chart-state--tab <id>
Screenshot a chartopencli tradingview screenshot --output ~/charts/nvda.png--tab <id>
Quotes + options
User RequestCommandKey Flags
Spot quoteopencli tradingview quote --ticker X--exchange NASDAQ
Options chain (full)opencli tradingview options-chain --ticker X--exchange
Options chain (one expiry, ATM band)opencli tradingview options-chain --ticker X --expiry YYYY-MM-DD--type call|put, --strikes-around-spot N
List expiriesopencli tradingview options-expiries --ticker X—
Screener
User RequestCommandKey Flags
Generic screener (stocks/crypto/forex/futures/bonds)opencli tradingview screener --market america --columns ...--filter <json>, --sort field:desc, --limit N, --label-product
US stocks with RSI < 30, sorted by volumeopencli tradingview screener --market america --columns "name,close,RSI|60,volume" --filter '[{"left":"RSI|60","operation":"less","right":30}]' --sort volume:desc—
Top crypto by market capopencli tradingview screener --market coin --columns "name,close,change,market_cap_calc" --sort market_cap_calc:desc --limit 50—
Symbol search / autocompleteopencli tradingview search --query "nvidia"--type stock|funds|crypto|..., --exchange, --country
News
User RequestCommandKey Flags
Global news headlinesopencli tradingview news --limit 25--category, --area, --section, --provider
News for a specific tickeropencli tradingview news --symbol NASDAQ:AAPL--limit, --section analysis|press_release|...
Full story by idopencli tradingview news --id <story-id>--lang en
Watchlists + alerts
User RequestCommandKey Flags
List all watchlistsopencli tradingview watchlists—
Symbols in one watchlistopencli tradingview watchlists --id <wl-id>—
Colored-flag list (red/orange/yellow/green/blue/purple)opencli tradingview watchlists --color red—
List all alertsopencli tradingview alerts --type list—
Active alertsopencli tradingview alerts --type active—
Recently triggered alertsopencli tradingview alerts --type triggered—
Alerts that fired while offlineopencli tradingview alerts --type offline—
Full alert logopencli tradingview alerts --type log—

Step 3: Execute the Command

General pattern
# Use -f json or -f yaml for structured output
opencli tradingview options-chain --ticker SNDK --expiry 2026-05-22 -f json
opencli tradingview options-chain --ticker NVDA --strikes-around-spot 8 -f csv
opencli tradingview quote --ticker SPY --exchange NYSEARCA -f json
Key rules
  1. Run opencli tradingview status first if connectivity is uncertain — it reports CDP connection state and active TradingView tabs.

  2. Use -f json for programmatic processing (LLM context, downstream skills).

  3. Filter by expiry and --strikes-around-spot — full chains can be 3,000+ rows; an unfiltered dump is rarely what the user wants.

  4. Default --exchange NASDAQ for US equities; require explicit --exchange for ETFs (e.g. SPY = NYSEARCA, QQQ = NASDAQ) or non-US listings.

  5. For screener, choose --columns deliberately — it controls both the request and the output table. Include name and any field used in --filter or --sort. Append |TF for an indicator's timeframe, e.g. RSI|60 for 1-hour RSI. The default columns are sensible for stocks but should be replaced for crypto / forex / futures (different field catalogs).

  6. For screener, --filter is JSON — array of {left, operation, right} clauses. Always single-quote the JSON in shell to avoid escaping issues. See references/commands.md for the operations cheat sheet.

  7. For news, narrow the feed early — the global feed is firehose-level. Use --symbol, --category, --section, or --provider before raising --limit.

  8. For search, prefer it over guessing — when the user gives an ambiguous ticker (e.g. "SPY" without exchange), run search --query SPY first to confirm the listing, then pass --exchange to subsequent commands.

  9. For watchlists and alerts, default to summary — a user asking "what's in my watchlists?" wants list names + counts, not every symbol.

  10. Read-only. No trades, no watchlist edits, no alert creation/deletion, no chart writes — the plugin intentionally does not expose write endpoints (/append, /replace, /create_alert, etc.), so don't look for workarounds.

Output format flag (-f)
FormatFlagBest for
Table-f table (default)Human-readable terminal output
JSON-f jsonProgrammatic processing, LLM context
YAML-f yamlStructured output, readable
Markdown-f mdDocumentation, reports
CSV-f csvSpreadsheet export
Output columns
  • quote — symbol, close, change, change_abs, currency, time

  • options-chain — expiry, dte, strike, type, bid, ask, mid, iv, delta, gamma, theta, vega, rho, theo, bid_iv, ask_iv, symbol

  • options-expiries — expiry, dte, contracts_count

  • screener — dynamic; one column per --columns entry, plus symbol. (Default: name, close, change, volume, market_cap_basic, sector.tr.)

  • search — symbol, description, type, exchange, country, currency

  • news (list mode) — id, published, provider, title, urgency, related_symbols, link

  • news (story mode, --id set) — id, published, provider, title, body, tags, link

  • watchlists — id, name, symbol_count, symbols

  • alerts — id, name, symbol, type, condition, value, active, status, fired_at

  • chart-state — layout_id, symbol, interval, url

  • screenshot — path, bytes


Step 4: Present the Results

  1. Lead with the structure summary — for an options chain, state spot price, expiry being shown, ATM strike, and IV regime first; then the table. For a screener, lead with the count of matches and the filters applied.

  2. Filter aggressively before showing — never paste a 3,000-row chain or a 500-row screener. Default to ATM ± 6 strikes per expiry for chains; for screeners cap to top 20 unless the user asks for more.

  3. Highlight skew — when showing both calls and puts, note IV skew direction if material.

  4. For chart-state, report layout id + symbol + interval + URL succinctly; offer to screenshot.

  5. For news (list mode), group by provider and lead with timestamps in the user's likely timezone (or always UTC ISO if uncertain). Include the link so the user can open the story. For story mode (--id set), the body is plain text — present it as-is, optionally trimmed.

  6. For watchlists, summarize counts before listing symbols (e.g. "3 watchlists: Earnings (24 syms), AI plays (12 syms), Hedges (8 syms)"). Don't dump 100-symbol watchlist contents unless asked.

  7. For alerts, group by status (active vs triggered/fired) and order recent firings by fired_at desc. Don't expose alert ids unless the user explicitly asks.

  8. For screener results, surface the top movers / extreme values in plain prose first (e.g. "highest market cap NVDA at $4.2T, 12 names below the RSI<30 threshold"), then the table.

  9. Treat sessions as private — never expose CDP target IDs, cookies, or layout IDs unless the user asks.


Step 5: Diagnostics

opencli tradingview status

Returns CDP connection state and active TradingView tabs. If CDP is down, run opencli tradingview launch to relaunch with the debug port.


Error Reference

ErrorCauseFix
Unknown command: tradingviewPlugin not installedopencli plugin install github:himself65/finance-skills/tradingview
Cannot reach CDP at http://127.0.0.1:9222App launched without debug portopencli tradingview launch
No tradingview.com cookies foundLogged out of TradingViewLog in inside the desktop app
No TradingView tab foundApp open but no TradingView page loadedOpen any chart or symbol page, then retry
scanner 400 / Empty chain / totalCount=0Subscription tier doesn't cover this symbol's optionsCheck account tier in the desktop app
Symbol not foundWrong exchangePass --exchange explicitly, or run opencli tradingview search --query <name> first
Rate limitedToo many requestsWait a few seconds, then retry

Reference Files

  • references/commands.md — Every command with all flags, output examples, and analyst workflows

Files

references/commands.md

opencli TradingView Command Reference (Read-Only)

Complete read-only reference for the tradingview opencli adapter that lives in this repo's opencli-plugins/tradingview tree, scoped to financial research use cases.

Install: npm install -g @jackwener/opencli && opencli plugin install github:himself65/finance-skills/tradingview

This skill is read-only. No write operations, no trade execution.


Setup

The adapter connects to a running TradingView.app over Chrome DevTools Protocol (CDP) — no bot account, no API key, no Browser Bridge extension.

Requirements:

  1. Node.js >= 24 (the tradingview plugin declares engines.node >= 24)

  2. TradingView.app installed on macOS, logged in

  3. App launched with --remote-debugging-port=9222 (the launch command handles this)

Launch with CDP:

opencli tradingview launch              # default port 9222
opencli tradingview launch --port 9333  # custom port

The launch step quits any running TradingView and reopens it with the debug port. Warn the user to save chart layouts first.

Verify connectivity:

opencli tradingview status

Read Operations

launch

Quits any running TradingView and re-launches it with --remote-debugging-port enabled. Polls /json/version until the app is reachable.

opencli tradingview launch
opencli tradingview launch --port 9333
opencli tradingview launch -f json
FlagRequiredDefaultNotes
--portno9222CDP port
-f, --formatnotabletable|json|yaml|md|csv

Output columns: port, pid, ready


status

Reports CDP connection state and lists active TradingView tabs (chart, symbol page, options page).

opencli tradingview status
opencli tradingview status -f json

Output columns: connected, tabs[] (each tab has id, type, url, title)

Use OPENCLI_CDP_TARGET=tradingview.com to disambiguate when multiple Electron CDP sessions are running on the host.


quote

Single-symbol spot quote, backed by scanner.tradingview.com/global/scan2.

opencli tradingview quote --ticker AAPL
opencli tradingview quote --ticker SPY --exchange NYSEARCA -f json
opencli tradingview quote --ticker BABA --exchange NYSE
FlagRequiredDefaultNotes
--tickeryes—Symbol (e.g. AAPL)
--exchangenoNASDAQTradingView exchange code (NASDAQ, NYSE, NYSEARCA, ...)
-f, --formatnotabletable|json|yaml|md|csv

Output columns: symbol, close, change, change_abs, currency, time


options-chain

Full options chain or filtered slice. Backed by scanner.tradingview.com/options/scan2. Returns one row per (expiry × strike × type) tuple — the response is the entire chain in one request, not paginated.

# Full chain (every expiry, every strike, calls + puts) — can be 3,000+ rows
opencli tradingview options-chain --ticker SNDK -f json

# One expiry, ATM ± 6 strikes, both call and put
opencli tradingview options-chain --ticker SNDK --expiry 2026-05-22 \
    --strikes-around-spot 6 -f json

# Calls only, full strike list, single expiry
opencli tradingview options-chain --ticker NVDA --expiry 2026-06-19 \
    --type call --strikes-around-spot 0 -f json

# CSV export for spreadsheet analysis
opencli tradingview options-chain --ticker AAPL --expiry 2026-05-15 -f csv
FlagRequiredDefaultNotes
--tickeryes—Underlying ticker
--exchangenoNASDAQTradingView exchange code
--expirynoallISO date (YYYY-MM-DD)
--typenobothcall or put
--strikes-around-spotno6Half-band; total strikes = 2N+1. 0 = full strike list.
-f, --formatnotabletable|json|yaml|md|csv

Output columns: expiry, dte, strike, type, bid, ask, mid, iv, delta, gamma, theta, vega, rho, theo, bid_iv, ask_iv, symbol

Symbol format: OPRA:<ROOT><YY><MM><DD><C|P><STRIKE> (OCC-style, e.g. OPRA:SNDK260522C2090.0).

Sample row (JSON):

{
  "expiry": "2026-05-22", "dte": 12, "strike": 2090, "type": "call",
  "bid": 12.9, "ask": 18.4, "mid": 15.65, "iv": 1.0953,
  "delta": 0.1035, "gamma": 0.000542, "theta": -2.177, "vega": 0.5456, "rho": 0.0552,
  "theo": 15.0, "bid_iv": 1.0546, "ask_iv": 1.1540,
  "symbol": "OPRA:SNDK260522C2090.0"
}
Common analyst workflows
  • IV regime check: --strikes-around-spot 0 --expiry <next-monthly> → look at ATM IV vs IV at ±20%.

  • Skew measurement: filter calls and puts at equidistant OTM strikes (e.g. ±10% from spot), compare IVs to quantify put skew.

  • Liquidity scan before structure: sort by (ask - bid)/mid to flag wide spreads before placing a multi-leg order.

  • Theoretical edge: compare mid to theo per row — large positive theo - mid suggests a market mispricing (or stale data — verify with the bid IV / ask IV envelope).


options-expiries

Lists every available expiration for a ticker with DTE and contract counts. Useful before pulling a full chain to know what's available.

opencli tradingview options-expiries --ticker SNDK
opencli tradingview options-expiries --ticker SPY --exchange NYSEARCA -f json
FlagRequiredDefaultNotes
--tickeryes—Underlying ticker
--exchangenoNASDAQTradingView exchange code
-f, --formatnotabletable|json|yaml|md|csv

Output columns: expiry, dte, contracts_count


chart-state

Returns the current symbol/interval/layout of an active chart tab via CDP Runtime.evaluate.

opencli tradingview chart-state               # picks the first chart tab
opencli tradingview chart-state --tab abc123  # specific tab id (from `status`)
opencli tradingview chart-state -f json
FlagRequiredDefaultNotes
--tabnofirst chart tabTab id from opencli tradingview status
-f, --formatnotabletable|json|yaml|md|csv

Output columns: layout_id, symbol, interval, url


screenshot

Captures a PNG of a chart tab via CDP Page.captureScreenshot.

opencli tradingview screenshot --output ~/charts/nvda.png
opencli tradingview screenshot --tab abc123 --output ./snap.png
FlagRequiredDefaultNotes
--tabnofirst chart tabTab id from opencli tradingview status
--outputnoautogeneratedOutput path (PNG)
-f, --formatnotabletable|json|yaml|md|csv

Output columns: path, bytes


Output Formats

All commands support the -f / --format flag:

FormatFlagDescription
Table-f table (default)Rich CLI table
JSON-f jsonPretty-printed JSON (2-space indent)
YAML-f yamlStructured YAML
Markdown-f mdPipe-delimited markdown tables
CSV-f csvComma-separated values

Financial Research Workflows

Quick IV / skew check on a single ticker
# 1. List expiries, pick the front month
opencli tradingview options-expiries --ticker NVDA -f json

# 2. Pull ATM band for that expiry, both call and put
opencli tradingview options-chain --ticker NVDA --expiry 2026-05-15 \
    --strikes-around-spot 6 -f json

# 3. Compare ATM call IV vs ATM put IV → skew direction
Liquidity check before a multi-leg structure
# Pull the legs you plan to trade
opencli tradingview options-chain --ticker AAPL --expiry 2026-06-19 \
    --strikes-around-spot 8 -f csv > aapl_chain.csv

# In the CSV: sort by (ask-bid)/mid descending → widest spreads at the top
# Avoid legs with > 5–10% relative spread on liquid names
Capture a chart for research notes
# 1. Identify what's currently shown
opencli tradingview chart-state -f json

# 2. Snapshot it
opencli tradingview screenshot --output ~/research/sndk-2026-05-10.png

Error Reference

ErrorCauseFix
Unknown command: tradingviewPlugin not installedopencli plugin install github:himself65/finance-skills/tradingview
CDP not reachable on :9222App launched without debug portopencli tradingview launch
No tab matches tradingview.comApp open but no TradingView page loadedOpen any chart in TradingView, then retry
Empty chain / totalCount=0Subscription tier doesn't cover this symbol's optionsCheck account tier in the desktop app
Symbol not foundWrong exchangePass --exchange explicitly
Multiple Electron CDP targetsOther Electron apps on the same portSet OPENCLI_CDP_TARGET=tradingview.com
Rate limited / stale dataToo many requestsWait a few seconds; the plugin caches options/scan2 for ~5–10 s per ticker


screener

Generic stock / crypto / forex / futures / bond screener via scanner.tradingview.com/{market}/scan2. Same backend powers all of TradingView's screener, movers, and heatmap pages.

# US stocks with RSI(1h) below 30, sorted by volume
opencli tradingview screener \
    --market america \
    --columns "name,close,RSI|60,volume,market_cap_basic,sector.tr" \
    --filter '[{"left":"RSI|60","operation":"less","right":30}]' \
    --sort volume:desc \
    --limit 25 -f json

# Top 50 crypto by market cap
opencli tradingview screener \
    --market coin \
    --columns "name,close,change,market_cap_calc,total_volume_calc" \
    --sort market_cap_calc:desc --limit 50 -f json

# Specific ticker subset (skip filter, supply tickers explicitly)
opencli tradingview screener \
    --market america \
    --tickers "NASDAQ:AAPL,NASDAQ:MSFT,NASDAQ:NVDA" \
    --columns "name,close,change,market_cap_basic,price_earnings_ttm" -f json
FlagRequiredDefaultNotes
--marketnoamericaMarket path segment (see "Market codes" below)
--columnsnoname,close,change,volume,market_cap_basic,sector.trCSV. Append `
--filterno—JSON array of {left, operation, right} clauses
--sortnovolume:descfield:asc or field:desc
--tickersno—Comma-separated EXCH:SYM list. Bypasses filter when set.
--label-productnoscreener-stockServer-side analytics tag (screener-stock, screener-crypto, ...)
--limitno50Max rows; clamped to [1, 500]
--offsetno0Pagination start

Market codes

  • Stocks (per country): america, uk, germany, france, japan, india, china, hongkong, korea, taiwan, singapore, australia, canada, brazil, mexico, israel, saudi, etc. (~70 codes)

  • Cross-class: crypto (CEX pairs), coin (crypto coins, different schema), forex, futures, bond, cfd, economics2, options, global

Filter operations

equal, nequal, greater, egreater, less, eless, in_range, not_in_range, empty, nempty, match (substring), nmatch, crosses, crosses_above, crosses_below, above%, below%, in_range%. For boolean composition use the filter2: {operator, operands} field directly via the page-context API (not currently exposed via --filter).

Field catalog

3,000+ stock fields (1,018 deduplicated). See TradingView-Screener fields reference for the full list. Common ones:

  • Price: close, open, high, low, change, change_abs, gap, volume, volume_change

  • Fundamentals: market_cap_basic, price_earnings_ttm, price_book_fq, dividend_yield_recent, earnings_per_share_basic_ttm, revenue_ttm, total_debt, return_on_equity_fy

  • Technicals: RSI, RSI|<tf>, MACD.macd, MACD.signal, BB.upper, BB.lower, ATR, ADX, Aroon.Up, Aroon.Down, MOM, Mom, Stoch.K, Stoch.D

  • Recommendation: Recommend.All, Recommend.MA, Recommend.Other (range -1..1)

  • Categorical: type, subtype, sector, sector.tr (translated), industry, industry.tr, country, exchange

Common analyst workflows
  • Oversold scan: --filter '[{"left":"RSI|60","operation":"less","right":30}]' --sort volume:desc → high-volume names with 1h RSI < 30.

  • Earnings beats: --filter '[{"left":"earnings_per_share_basic_ttm","operation":"egreater","right":0},{"left":"eps_surprise_percent_fq","operation":"greater","right":5}]'.

  • Sector rotation: group results by sector.tr after pulling top 200 by change.

  • Index constituents: use --tickers with the SP500 / Nasdaq100 list to pull the same row set across multiple metrics in one call.


Symbol / instrument autocomplete. Backed by symbol-search.tradingview.com/symbol_search/v3/. Use this whenever the user's ticker is ambiguous (e.g. "SPY" matches multiple listings) or to discover available exchanges for a name.

opencli tradingview search --query "nvidia" -f json
opencli tradingview search --query "BTC" --type crypto --exchange BINANCE -f json
opencli tradingview search --query "9988" --country HK
FlagRequiredDefaultNotes
--queryyes—Search text; supports EXCH:SYM parsing
--typenoallstock, funds, index, futures, forex, crypto, bond, economic, dr, cfd, option, structured
--exchangeno—NASDAQ, NYSE, NYSEARCA, BINANCE, OANDA, ...
--countryno—ISO-2 (US, GB, JP, HK, DE, ...)
--langnoenDescription language
--limitno20Max results
--offsetno0Pagination start

Output columns: symbol (full EXCH:SYM), description, type, exchange, country, currency.


news

TradingView's news headlines feed (or full story). Backed by news-headlines.tradingview.com/v2/. Two modes:

  • List (default): paginated headlines, filterable by symbol / category / area / section / provider.

  • Story (--id <story-id>): one row with the full story body flattened to plain text.

# Global news feed
opencli tradingview news --limit 25 -f json

# Ticker-specific news
opencli tradingview news --symbol NASDAQ:AAPL --limit 10 -f json

# Analyst notes only, on Reuters
opencli tradingview news --section analysis --provider reuters -f json

# Full story by id
opencli tradingview news --id "tag:reuters.com,2026:newsml_..." -f json
FlagRequiredDefaultNotes
--idno—When set, fetch full story instead of list
--symbolno—EXCH:SYM filter (omit for global feed)
--categoryno—base, stock, etf, futures, forex, crypto, index, bond, economic
--areano—WLD, AME, EUR, ASI, OCN, AFR
--sectionno—press_release, financial_statement, insider_trading, esg, corp_activity, analysis, recommendation, prediction, markets_today, survey
--providerno—Single source (reuters, dow_jones, cointelegraph, ...)
--langnoenStory language
--limitno25Max headlines

Output columns (list mode): id, published, provider, title, urgency, related_symbols, link.

Output columns (story mode): id, published, provider, title, body (plain-text rendering of the AST), tags, link.

Common analyst workflows
  • Pre-market scan: news --section markets_today --area AME --limit 20 for the morning brief.

  • Earnings call follow-up: news --symbol <S> --section press_release → original release text via news --id <id> for AI summarization.

  • Recommendation tracking: news --section recommendation --symbol <S> for upgrades/downgrades.


watchlists

Read-only access to the user's watchlists.

# List all custom watchlists (id, name, count, symbols)
opencli tradingview watchlists -f json

# Symbols in one watchlist
opencli tradingview watchlists --id rRwIJoVm -f json

# Colored-flag list (red, orange, yellow, green, blue, purple)
opencli tradingview watchlists --color red -f json
FlagRequiredDefaultNotes
--idno—8-char watchlist id (mutually exclusive with --color)
--colorno—One of: red, orange, yellow, green, blue, purple

Output columns: id, name, symbol_count, symbols (comma-separated for table; array in JSON).

Note: This skill does not expose write endpoints (/append/, /replace/). Modifying watchlists must be done through the TradingView UI.


alerts

Read-only access to pricealerts.tradingview.com. One command, multiple modes via --type.

opencli tradingview alerts --type list      # all alerts (active + paused)
opencli tradingview alerts --type active    # currently armed
opencli tradingview alerts --type triggered # recently fired
opencli tradingview alerts --type offline   # fired while user was offline
opencli tradingview alerts --type log       # full historical fire log
FlagRequiredDefaultNotes
--typenolistOne of: list, active, triggered, offline, log

Output columns: id, name, symbol, type, condition, value, active, status, fired_at.

Tier sensitivity: TradingView caps the number of saved alerts by tier (Free=1, Essential=10, Plus=20, Premium=400, Ultimate=unlimited). The API surface is identical; only the saved set changes.

Note: Write endpoints (/create_alert, /edit_alert, /remove_alert, /restart_alert) are intentionally NOT exposed.


Limitations

  • macOS only — the launch helper relies on open -a TradingView --args. Linux / Windows desktop apps are not supported by this plugin.

  • Logged-in app required — no auth bypass; data tier matches what the user sees in the app.

  • Read-only in this skill — even if the plugin grows write commands later (alerts, watchlists), this skill forbids them.

  • Single attached app at a time — if multiple Electron CDP sessions exist, set OPENCLI_CDP_TARGET.

  • Field positions are read from the response — never hard-code field indices; if the plugin breaks because TradingView changes the wire format, file an issue at the plugin repo.


Best Practices

  • Filter aggressively — full chains are 3,000+ rows. Default to ATM ± 6 strikes per expiry.

  • Use -f json for programmatic processing and LLM context.

  • Use -f csv for spreadsheet analysis of chains.

  • Run status before options-chain if you suspect connectivity issues.

  • Treat CDP endpoints as private — never log or display debug URLs, target ids, or layout ids.

  • Spot self-consistency check — quote.close should fall within [min_strike, max_strike] of the chain. If not, suspect stale data or wrong exchange.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs an MCP server, Needs Node.js

Security

What our scanner noticed· Low risk

  • Instructions that use the network

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Alex Yang
Publisher
Alex Yang (Community)
Source
himself65/finance-skills · plugins/data-providers/skills/tradingview-reader · commit a085078
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Alex Yang or Alex Yang.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download tradingview-reader.zip