Skills openbb
install
source · Clone the upstream repo
git clone https://github.com/TerminalSkills/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/TerminalSkills/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/openbb" ~/.claude/skills/terminalskills-skills-openbb && rm -rf "$T"
manifest:
skills/openbb/SKILL.mdsafety · automated scan (medium risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
- pip install
- makes HTTP requests (curl)
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content
OpenBB
Open Data Platform for financial data. Connect once, consume everywhere — Python for quants, REST API for apps, MCP server for AI agents. Access stocks, crypto, forex, macro indicators, and alternative data.
GitHub: OpenBB-finance/OpenBB
Overview
OpenBB is an open-source financial data platform that aggregates data from multiple providers (Yahoo Finance, FRED, SEC, FMP, Polygon, and more). It offers a Python SDK, REST API server, and MCP server for AI agents, covering equities, crypto, forex, macro economics, and news.
Instructions
Installation
# Core package pip install openbb # With all data providers pip install "openbb[all]"
Quick Start
from openbb import obb # Stock price history output = obb.equity.price.historical("AAPL") df = output.to_dataframe() print(df.head())
Equity Data
# Historical prices df = obb.equity.price.historical("AAPL", start_date="2025-01-01").to_dataframe() # Real-time quote quote = obb.equity.price.quote("AAPL").to_dataframe() # Fundamental analysis income = obb.equity.fundamental.income("AAPL", period="annual").to_dataframe() balance = obb.equity.fundamental.balance("AAPL").to_dataframe() metrics = obb.equity.fundamental.metrics("AAPL").to_dataframe() # Technical indicators df = obb.equity.price.historical("AAPL", start_date="2025-01-01").to_dataframe() sma = obb.technical.sma(data=df, length=20) rsi = obb.technical.rsi(data=df, length=14) macd = obb.technical.macd(data=df)
Crypto, Forex, and Macro
# Crypto btc = obb.crypto.price.historical("BTC-USD").to_dataframe() # Forex eurusd = obb.currency.price.historical("EUR/USD").to_dataframe() # Macro economics gdp = obb.economy.gdp.nominal(country="united_states").to_dataframe() cpi = obb.economy.cpi(country="united_states").to_dataframe() rates = obb.economy.fred_series("FEDFUNDS").to_dataframe()
AI Agent Integration
Run OpenBB as an API server:
openbb-api # Launches FastAPI at http://127.0.0.1:6900
Query from any language:
curl http://127.0.0.1:6900/api/v1/equity/price/historical?symbol=AAPL
OpenBB also exposes an MCP server so AI agents can query financial data directly.
Data Providers
| Provider | Data | Free Tier |
|---|---|---|
| Yahoo Finance | Prices, fundamentals | Yes |
| FRED | Macro economics | Yes |
| SEC (EDGAR) | Filings, insider trades | Yes |
| FMP | Fundamentals, estimates | Limited |
| Polygon | Real-time prices | Limited |
# Use a specific provider obb.equity.price.historical("AAPL", provider="yfinance") # Set API keys for premium providers obb.user.credentials.fmp_api_key = "your_key"
Examples
Example 1: Full Stock Analysis Pipeline
from openbb import obb def analyze_stock(ticker: str) -> dict: """Full analysis for AI agent consumption.""" price = obb.equity.price.historical(ticker, start_date="2025-01-01").to_dataframe() fundamentals = obb.equity.fundamental.metrics(ticker).to_dataframe() news = obb.news.company(ticker, limit=5).to_dataframe() return { "ticker": ticker, "current_price": price["close"].iloc[-1], "52w_high": price["high"].max(), "52w_low": price["low"].min(), "pe_ratio": fundamentals["pe_ratio"].iloc[0] if len(fundamentals) > 0 else None, "market_cap": fundamentals["market_cap"].iloc[0] if len(fundamentals) > 0 else None, "recent_news": news["title"].tolist() if len(news) > 0 else [], } analysis = analyze_stock("AAPL")
Example 2: Screening and Discovery
# Stock screener — find undervalued dividend stocks screener = obb.equity.screener( market_cap_min=1e9, pe_ratio_max=20, dividend_yield_min=2.0 ).to_dataframe() # Top gainers/losers gainers = obb.equity.discovery.gainers().to_dataframe() losers = obb.equity.discovery.losers().to_dataframe() # Company news news = obb.news.company("AAPL", limit=20).to_dataframe()
Guidelines
- Start with
(core) — addpip install openbb
only if you need every provider[all] - Use
on all outputs for pandas integration.to_dataframe() - Free data from Yahoo Finance and FRED covers most research needs
- Run
to expose data to non-Python applicationsopenbb-api - The MCP server lets AI agents query financial data autonomously
- Check docs.openbb.co/python/reference for all available endpoints