plugins/data-providers/skills/tradingview-reader/SKILL.md
Read TradingView desktop app for market data, news, alerts, watchlists, and screener results using opencli (read-only). Use this skill whenever the user wants quotes, options chains, options expiries, screener results across stocks/crypto/forex/futures/bonds, gainers/losers/movers, news headlines or full story bodies, alerts (active list, fire log, offline fires), watchlists including colored flag lists, symbol search/autocomplete, chart state, or screenshots from their local TradingView.app. Triggers include: "options chain for X", "IV on Y", "show me SNDK puts", "TV screener for Y sector", "screen oversold stocks", "TV gainers", "crypto by market cap", "TradingView news on AAPL", "show my watchlists", "red flag list", "list my alerts", "what alerts fired", "search TV for nvidia", "what symbol is on my chart", "screenshot NVDA chart", "TradingView IV skew", "TV expiries for X". This skill is READ-ONLY — it does NOT place trades, modify watchlists, or change chart layouts.
npx skillsauth add himself65/finance-skills tradingview-readerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
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 harvest session cookies via CDP Storage.getCookies, then fire HTTP requests from Node directly. Page-context fetch is blocked by browser CORS preflight even from TradingView's own pages — the desktop app uses Electron's main process (Node network stack) to bypass this, and we replicate that path. No Browser Bridge extension required, no apps.yaml registration needed.
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:
npm install -g @jackwener/opencli
Requires Node.js >= 21 (or Bun >= 1.0).
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.
| Symptom | Fix |
|---|---|
| opencli: command not found | npm install -g @jackwener/opencli (Node ≥ 22 for built-in WebSocket) |
| Unknown command: tradingview | opencli plugin install github:himself65/finance-skills/tradingview |
| Cannot reach CDP at http://127.0.0.1:9222 | App not launched with debug port — run opencli tradingview launch |
| No tradingview.com cookies found | App is open but logged out — log in inside the desktop app |
| No TradingView tab found | Open any chart or symbol page in TradingView, then retry |
| Empty chain / 0 contracts | Subscription tier on the logged-in account doesn't include options for this symbol |
| User Request | Command | Key Flags |
|---|---|---|
| Setup / connection check | opencli tradingview status | — |
| Relaunch app with CDP | opencli tradingview launch | --port 9222 |
| What's on the chart | opencli tradingview chart-state | --tab <id> |
| Screenshot a chart | opencli tradingview screenshot --output ~/charts/nvda.png | --tab <id> |
| User Request | Command | Key Flags |
|---|---|---|
| Spot quote | opencli 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 expiries | opencli tradingview options-expiries --ticker X | — |
| User Request | Command | Key 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 volume | opencli 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 cap | opencli tradingview screener --market coin --columns "name,close,change,market_cap_calc" --sort market_cap_calc:desc --limit 50 | — |
| Symbol search / autocomplete | opencli tradingview search --query "nvidia" | --type stock\|funds\|crypto\|..., --exchange, --country |
| User Request | Command | Key Flags |
|---|---|---|
| Global news headlines | opencli tradingview news --limit 25 | --category, --area, --section, --provider |
| News for a specific ticker | opencli tradingview news --symbol NASDAQ:AAPL | --limit, --section analysis\|press_release\|... |
| Full story by id | opencli tradingview news --id <story-id> | --lang en |
| User Request | Command | Key Flags |
|---|---|---|
| List all watchlists | opencli tradingview watchlists | — |
| Symbols in one watchlist | opencli tradingview watchlists --id <wl-id> | — |
| Colored-flag list (red/orange/yellow/green/blue/purple) | opencli tradingview watchlists --color red | — |
| List all alerts | opencli tradingview alerts --type list | — |
| Active alerts | opencli tradingview alerts --type active | — |
| Recently triggered alerts | opencli tradingview alerts --type triggered | — |
| Alerts that fired while offline | opencli tradingview alerts --type offline | — |
| Full alert log | opencli tradingview alerts --type log | — |
# 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
opencli tradingview status first if connectivity is uncertain — it reports CDP connection state and active TradingView tabs.-f json for programmatic processing (LLM context, downstream skills).--strikes-around-spot — full chains can be 3,000+ rows; an unfiltered dump is rarely what the user wants.--exchange NASDAQ for US equities; require explicit --exchange for ETFs (e.g. SPY = NYSEARCA, QQQ = NASDAQ) or non-US listings.screener, --columns is critical — 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).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.news, narrow the feed early — the global feed is firehose-level. Use --symbol, --category, --section, or --provider before raising --limit.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.watchlists and alerts, default to summary — a user asking "what's in my watchlists?" wants list names + counts, not every symbol./append, /replace, /create_alert, etc.).-f)| Format | Flag | Best for |
|---|---|---|
| Table | -f table (default) | Human-readable terminal output |
| JSON | -f json | Programmatic processing, LLM context |
| YAML | -f yaml | Structured output, readable |
| Markdown | -f md | Documentation, reports |
| CSV | -f csv | Spreadsheet export |
quote — symbol, close, change, change_abs, currency, timeoptions-chain — expiry, dte, strike, type, bid, ask, mid, iv, delta, gamma, theta, vega, rho, theo, bid_iv, ask_iv, symboloptions-expiries — expiry, dte, contracts_countscreener — dynamic; one column per --columns entry, plus symbol. (Default: name, close, change, volume, market_cap_basic, sector.tr.)search — symbol, description, type, exchange, country, currencynews (list mode) — id, published, provider, title, urgency, related_symbols, linknews (story mode, --id set) — id, published, provider, title, body, tags, linkwatchlists — id, name, symbol_count, symbolsalerts — id, name, symbol, type, condition, value, active, status, fired_atchart-state — layout_id, symbol, interval, urlscreenshot — path, bytes--id set), the body is plain text — present it as-is, optionally trimmed.fired_at desc. Don't expose alert ids unless the user explicitly asks.funda-data skill and reconcile.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 | Cause | Fix |
|---|---|---|
| Unknown command: tradingview | Plugin not installed | opencli plugin install github:himself65/finance-skills/tradingview |
| Cannot reach CDP at http://127.0.0.1:9222 | App launched without debug port | opencli tradingview launch |
| No tradingview.com cookies found | Logged out of TradingView | Log in inside the desktop app |
| No TradingView tab found | App open but no TradingView page loaded | Open any chart or symbol page, then retry |
| scanner 400 / Empty chain / totalCount=0 | Subscription tier doesn't cover this symbol's options | Check account tier in the desktop app |
| Symbol not found | Wrong exchange | Pass --exchange explicitly, or run opencli tradingview search --query <name> first |
| Rate limited | Too many requests | Wait a few seconds, then retry |
references/commands.md — Every command with all flags, output examples, and analyst workflowstools
Generic read-only fallback for any source opencli covers but this repo has no dedicated reader for — Yahoo Finance, Bloomberg, Reuters, Barchart, Eastmoney, Xueqiu, Sinafinance, Reddit, HackerNews, Substack, Medium, Weibo, Bilibili, Xiaohongshu, Zhihu, arXiv, Google Scholar, Apple Podcasts, Xiaoyuzhou, Spotify, YouTube, Weixin, Amazon, and more. Triggers: "use opencli to read", "grab the frontpage from hackernews", "read reddit r/wallstreetbets", "fetch Eastmoney hot stocks", "pull Xueqiu feed", "get Bloomberg markets headlines", "search arXiv for", any request to read from a site where a specialized skill does not exist but opencli does. FALLBACK — prefer twitter-reader, linkedin-reader, discord-reader, telegram-reader, or yc-reader when the source matches. READ-ONLY — never invoke write operations.
development
Look up Y Combinator companies, batches, and startup ecosystem data using the yc-oss API (read-only). Use this skill whenever the user wants to research YC-backed startups, find companies in a specific batch or industry, check which YC companies are hiring, explore top YC companies, or analyze startup trends by sector or tag. Triggers include: "YC companies in fintech", "who's in the latest YC batch", "YC startups hiring", "top Y Combinator companies", "find YC companies tagged AI", "W25 batch", "S24 companies", "YC stats", "Y Combinator portfolio", "startup research", "which YC companies do X", "venture research on YC", any mention of Y Combinator, YC batch, or YC-backed companies in the context of startup research, venture analysis, or market intelligence. This is a read-only data source — the API is a static JSON dataset updated daily.
tools
Read Twitter/X for financial research using opencli (read-only). Use this skill whenever the user wants to read their Twitter feed, search for financial tweets, view bookmarks, look up user profiles, or gather market sentiment from Twitter/X. Triggers include: "check my feed", "search Twitter for", "show my bookmarks", "who follows", "look up @user", "what's trending about", "market sentiment on Twitter", "what are people saying about AAPL", "recent tweets from @elonmusk", "show me @user's posts", "fintwit", any mention of Twitter/X in context of reading financial news or market research. This skill is READ-ONLY — it does NOT support posting, liking, retweeting, or any write operations.
tools
Query Funda AI financial data via two surfaces: the MCP server at https://funda.ai/api/mcp for analyst-grade research synthesis (DCF, comps, earnings previews/recaps, sector deep-dives, SEC filings, transcripts, supply-chain mapping, ownership flow, macro framing) via the agent_chat tool — OR the REST API at https://api.funda.ai/v1 with FUNDA_API_KEY for raw data (real-time quotes, intraday candles, EOD prices, financial statements, options chains/greeks/GEX, supply-chain KG, social sentiment, news, calendars, FRED, ESG, congressional trades, AI hiring signals). Triggers: "funda", "funda.ai", real-time quote, stock price, intraday, balance sheet, income statement, options chain, DCF, comps, earnings preview/recap, analyst estimates, 10-K/10-Q/8-K, transcript, ownership flow, gamma exposure, supply chain, sector deep-dive, congressional trades, FRED. Prefer MCP for synthesis/analysis questions; use REST for raw structured data the MCP declines.