057bc4493e
Wraps the entire yfinance public API behind a single binary `yfin` with
51 subcommands across 13 namespaces (ticker, download, tickers, search,
lookup, market, sector, industry, calendars, screen, live, auth, config).
Output renders as Rich tables on TTY, JSON when piped; --format / --out
support table | json | ndjson | csv | tsv | parquet | yaml.
Highlights:
- 1857 LOC across 18 Python files under cli/yfin/
- Typer + Rich, packaged via hatchling + uv
- Install globally: `cd cli && uv tool install -e .`
- ~/.yfin/config.toml for persistent proxy/cookies/locale defaults
- Friendly YFRateLimitError handler (exit 2, no Rich traceback)
- Validated end-to-end with 33 live tests against Yahoo from a
residential exit (AAPL, MSFT, NVDA, options, screens, calendars,
financials, news, holders, parquet round-trip)
yfinance-tools.yaml is the single source of truth:
- tools (49) — every public yfinance entry point with parameters
- cli (13 groups) — exact CLI invocations, mapped back to tool names
- outputSchemas (27) — actual return shapes captured from live calls
- learnings (19) — IP rate-limit, crumb handshake, Typer gotchas,
screen-build wrapping rules, upstream stubs, etc.
CLAUDE.md documents the upstream codebase layout for future agents.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
755 B
755 B
yfin
Single-binary CLI wrapper around yfinance. 50 subcommands covering every public yfinance entry point. Outputs Rich tables on a TTY, JSON when piped, CSV/Parquet/NDJSON/YAML on demand.
See ../yfinance-tools.yaml (the cli: section) for the full command map.
Install (editable, global)
uv tool install -e .
yfin --help
Quick examples
yfin ticker fast-info AAPL
yfin ticker history AAPL --period 1mo --interval 1d --out aapl.parquet
yfin download AAPL MSFT NVDA --start 2024-01-01 --out portfolio.csv
yfin search "anthropic" --news-count 5
yfin screen predefined day_gainers --count 25
yfin market summary US
yfin calendars earnings --start 2026-06-09 --end 2026-06-16