Yahoo Finance CLI
Scanned@stuhorsman
npx machina-cli add skill @stuhorsman/yahoo-finance-cli --openclawYahoo Finance CLI
A Node.js CLI for fetching comprehensive stock data from Yahoo Finance using the yahoo-finance2 library.
Requirements
- Node.js
yahoo-finance2installed globally or available asyfjq
Install
brew install jq
npm install yahoo-finance2
sudo ln -s /opt/homebrew/bin/yahoo-finance /usr/local/bin/yf
Usage
The tool is available as yf. It outputs JSON, which can be piped to jq for filtering.
yf <module> <symbol> [queryOptions]
Modules
Quote (Real-time Price & Data)
Get real-time price, change, and basic data.
yf quote AAPL
yf quote AAPL | jq '.regularMarketPrice'
Quote Summary (Fundamentals & More)
Get detailed modules like earnings, financial data, and profiles.
# Get specific sub-modules
yf quoteSummary AAPL '{"modules":["assetProfile", "financialData", "defaultKeyStatistics"]}'
# Common modules to request:
# - assetProfile (Company info, sector)
# - financialData (Target price, margins, cash)
# - defaultKeyStatistics (Enterprise value, float, shares)
# - calendarEvents (Earnings dates)
# - earnings (History and trend)
# - recommendationTrend (Analyst ratings)
# - upgradeDowngradeHistory
Insights
Get technical and fundamental insights (valuation, outlook).
yf insights AAPL
Search
Search for symbols.
yf search "Apple"
yf search "BTC-USD"
Historical Data (Deprecated)
Get historical OHLCV data. Note: historical is deprecated; use chart instead.
# Deprecated - use chart instead
yf historical AAPL '{"period1":"2024-01-01","period2":"2024-12-31"}'
# Recommended: use chart
yf chart AAPL '{"period1":"2024-01-01","period2":"2024-12-31"}'
Trending
See what's trending.
yf trendingSymbols US
Examples
Quick Price Check
# Full JSON then filter with jq
yf quote NVDA | jq '{symbol: .symbol, price: .regularMarketPrice, changePct: .regularMarketChangePercent}'
Next Earnings Date
# Use single quotes around the JSON option in zsh/bash
yf quoteSummary TSLA '{"modules":["calendarEvents"]}' | jq '.calendarEvents.earnings.earningsDate'
Analyst Recommendations
yf quoteSummary AAPL '{"modules":["recommendationTrend"]}'
Company Profile
yf quoteSummary MSFT '{"modules":["assetProfile"]}'
Historical OHLCV
# Using chart (recommended)
yf chart AAPL '{"period1":"2024-01-01","period2":"2024-12-31","interval":"1d"}' | jq '.quotes[0:5]'
# Using historical (deprecated, but still works)
yf historical AAPL '{"period1":"2024-01-01","period2":"2024-12-31","interval":"1d"}' | jq '.[0:5]'
Search for Symbols
yf search 'Apple'
yf search 'BTC-USD'
Trending Symbols (US)
yf trendingSymbols US
Insights (valuation, outlook)
yf insights AAPL
Troubleshooting
- Cookies: The tool automatically handles cookies (stored in
~/.yf2-cookies.json). If you encounter issues, try deleting this file. - JSON Output: The output is pure JSON. Use
jqto parse it for scripts or readability.
Additional tips:
- If you see authentication or parsing errors, delete the cookie file and retry:
rm -f ~/.yf2-cookies.json
yf quote AAPL
- On macOS with zsh, prefer single quotes around JSON option arguments and use double quotes inside (see examples above).
- If you want a compact numeric value only (no jq), use a short jq filter, e.g.:
yf quote AAPL | jq -r '.regularMarketPrice'
Overview
Yahoo Finance CLI is a Node.js-based tool that fetches stock data from Yahoo Finance. It outputs pure JSON and can be piped to jq for scripting, making it easy to automate price checks, earnings lookups, and fundamental insights. It supports modules like quote for real-time data, quoteSummary for fundamentals, chart for historical data, search for symbols, trendingSymbols for market momentum, and insights for valuation.
How This Skill Works
Install the yahoo-finance2 package and jq CLI, then run yf <module> <symbol> [queryOptions] to fetch JSON data from Yahoo Finance. The tool prints JSON to stdout, which you can filter or map with jq. Modules include quote (real-time data), quoteSummary (fundamentals), insights (valuation), search (symbol lookup), and chart (historical data).
When to Use It
- Get real-time price and change for a symbol with yf quote.
- Look up earnings dates or detailed fundamentals via yf quoteSummary.
- Search for symbols by company name with yf search.
- See market momentum and valuation cues with yf trendingSymbols or yf insights.
- Fetch historical OHLCV data using yf chart for specified periods.
Quick Start
- Step 1: Install dependencies — brew install jq; npm install yahoo-finance2; link the yf binary if necessary (e.g., sudo ln -s $(npm bin -g)/yahoo-finance /usr/local/bin/yf).
- Step 2: Run a sample command, e.g., yf quote AAPL.
- Step 3: Filter results with jq, e.g., yf quote AAPL | jq '.symbol, .regularMarketPrice, .regularMarketChangePercent'
Best Practices
- Prefer yf chart for historical data over the deprecated historical command.
- Pipe output to jq for scripts, dashboards, or automation.
- When using quoteSummary, request assetProfile, financialData, and defaultKeyStatistics for a fuller fundamentals view.
- Use single quotes around JSON options in shells to avoid escaping issues.
- Ensure the yf binary is accessible in your PATH after installation (link if needed).
Example Use Cases
- Quick Price Check: yf quote NVDA | jq '{symbol: .symbol, price: .regularMarketPrice, changePct: .regularMarketChangePercent}'
- Next Earnings Date: yf quoteSummary TSLA '{"modules":["calendarEvents"]}' | jq '.calendarEvents.earnings.earningsDate'
- Analyst Recommendations: yf quoteSummary AAPL '{"modules":["recommendationTrend"]}'
- Company Profile: yf quoteSummary MSFT '{"modules":["assetProfile"]}'
- Historical OHLCV: yf chart AAPL '{"period1":"2024-01-01","period2":"2024-12-31","interval":"1d"}' | jq '.quotes[0:5]'