home / skills / openclaw / skills / yahoo-finance

yahoo-finance skill

/skills/ajanraj/yahoo-finance

This skill fetches stock data from Yahoo Finance via yfinance, delivering prices, fundamentals, earnings, dividends, and analyst ratings.

npx playbooks add skill openclaw/skills --skill yahoo-finance

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
3.9 KB
---
name: yahoo-finance
description: Get stock prices, quotes, fundamentals, earnings, options, dividends, and analyst ratings using Yahoo Finance. Uses yfinance library - no API key required.
---

# Yahoo Finance CLI

A Python CLI for fetching comprehensive stock data from Yahoo Finance using yfinance.

## Requirements

- Python 3.11+
- uv (for inline script dependencies)

## Installing uv

The script requires `uv` - an extremely fast Python package manager. Check if it's installed:

```bash
uv --version
```

If not installed, install it using one of these methods:

### macOS / Linux
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

### macOS (Homebrew)
```bash
brew install uv
```

### Windows
```powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```

### pip (any platform)
```bash
pip install uv
```

After installation, restart your terminal or run:
```bash
source ~/.bashrc  # or ~/.zshrc on macOS
```

## Installation

The `yf` script uses PEP 723 inline script metadata - dependencies are auto-installed on first run.

```bash
# Make executable
chmod +x /path/to/skills/yahoo-finance/yf

# Optionally symlink to PATH for global access
ln -sf /path/to/skills/yahoo-finance/yf /usr/local/bin/yf
```

First run will install dependencies (yfinance, rich) to uv's cache. Subsequent runs are instant.

## Commands

### Price (quick check)
```bash
yf AAPL              # shorthand for price
yf price AAPL
```

### Quote (detailed)
```bash
yf quote MSFT
```

### Fundamentals
```bash
yf fundamentals NVDA
```
Shows: PE ratios, EPS, market cap, margins, ROE/ROA, analyst targets.

### Earnings
```bash
yf earnings TSLA
```
Shows: Next earnings date, EPS estimates, earnings history with surprises.

### Company Profile
```bash
yf profile GOOGL
```
Shows: Sector, industry, employees, website, address, business description.

### Dividends
```bash
yf dividends KO
```
Shows: Dividend rate/yield, ex-date, payout ratio, recent dividend history.

### Analyst Ratings
```bash
yf ratings AAPL
```
Shows: Buy/hold/sell distribution, mean rating, recent upgrades/downgrades.

### Options Chain
```bash
yf options SPY
```
Shows: Near-the-money calls and puts with strike, bid/ask, volume, OI, IV.

### History
```bash
yf history GOOGL 1mo     # 1 month history
yf history TSLA 1y       # 1 year
yf history BTC-USD 5d    # 5 days
```
Ranges: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max

### Compare
```bash
yf compare AAPL,MSFT,GOOGL
yf compare RELIANCE.NS,TCS.NS,INFY.NS
```
Side-by-side comparison with price, change, 52W range, market cap.

### Search
```bash
yf search "reliance industries"
yf search "bitcoin"
yf search "s&p 500 etf"
```

## Symbol Format

- **US stocks:** AAPL, MSFT, GOOGL, TSLA
- **Indian NSE:** RELIANCE.NS, TCS.NS, INFY.NS
- **Indian BSE:** RELIANCE.BO, TCS.BO
- **Crypto:** BTC-USD, ETH-USD
- **Forex:** EURUSD=X, GBPUSD=X
- **ETFs:** SPY, QQQ, VOO

## Examples

```bash
# Quick price check
yf AAPL

# Get valuation metrics
yf fundamentals NVDA

# Next earnings date + history
yf earnings TSLA

# Options chain for SPY
yf options SPY

# Compare tech giants
yf compare AAPL,MSFT,GOOGL,META,AMZN

# Find Indian stocks
yf search "infosys"

# Dividend info for Coca-Cola
yf dividends KO

# Analyst ratings for Apple
yf ratings AAPL
```

## Troubleshooting

### "command not found: uv"
Install uv using the instructions above.

### Rate limiting / connection errors
Yahoo Finance may rate limit excessive requests. Wait a few minutes and try again.

### "No data" for a symbol
- Verify the symbol exists: `yf search "company name"`
- Some data (options, dividends) isn't available for all securities

## Technical Notes

- Uses PEP 723 inline script metadata for uv dependencies
- Rich library provides colored, formatted tables
- First run installs deps to uv cache (~5 seconds)
- Subsequent runs are instant (cached environment)
- Handles NaN/None values gracefully with fallbacks

Overview

This skill provides a command-line interface to fetch stock prices, quotes, fundamentals, earnings, options, dividends, and analyst ratings from Yahoo Finance using the yfinance library. It requires no API key and auto-installs dependencies on first run via the uv inline script mechanism. The tool formats results with readable tables and handles missing values gracefully. It supports global symbols including stocks, ETFs, crypto, and forex.

How this skill works

The CLI wraps yfinance calls for common data endpoints and presents results with a rich-formatted output. On first execution, required Python packages are installed into an isolated cache, then cached for instant subsequent runs. Commands include price, quote, fundamentals, earnings, profile, dividends, ratings, options chain, history, compare, and search. It accepts regional symbol formats (e.g., RELIANCE.NS, BTC-USD) and offers sensible fallbacks when data fields are absent.

When to use it

  • Quick price or quote checks for a ticker without opening a browser
  • Pulling fundamentals, valuation metrics, and analyst targets for research
  • Checking upcoming earnings dates and historical earnings surprises
  • Inspecting options chains (near-the-money calls/puts) before trading
  • Comparing multiple tickers side-by-side for screening or presentations

Best practices

  • Install uv and make the yf script executable and available on PATH for convenience
  • Run searches when a symbol returns no data to discover correct regional tickers
  • Avoid excessive rapid polling to reduce chance of Yahoo Finance rate limiting
  • Use short history ranges for quick snapshots and longer ranges for trend analysis
  • Trust printed tables for overview work but validate trades with a broker's data feed

Example use cases

  • yf AAPL — quick current price and intraday change
  • yf fundamentals NVDA — PE, EPS, market cap, margins, ROE/ROA
  • yf earnings TSLA — next earnings date, estimates, surprise history
  • yf options SPY — near-the-money calls/puts with IV, OI, bid/ask
  • yf compare AAPL,MSFT,GOOGL — side-by-side valuation and 52W ranges

FAQ

Do I need an API key to use this skill?

No. It uses the yfinance library which scrapes Yahoo Finance data and requires no API key.

What platforms and symbols are supported?

Supports US stocks, regional exchanges (e.g., .NS, .BO), ETFs, crypto (BTC-USD), and forex (EURUSD=X).

What if a command returns no data for a known company?

First try yf search "company name" to find the correct ticker; some fields like options or dividends may be unavailable for certain securities.

How are dependencies installed?

On first run the script installs required packages into uv's cache using PEP 723 inline metadata; subsequent runs use the cached environment.