Open-source ETF analytics for the terminal

Local-first ETF research with terminal speed

ETFray turns SEC fund filings and IBKR portfolio data into holdings, exposure, concentration, margin, and risk workflows without cloud accounts or subscription dashboards.

ETFray terminal home dashboard
Capabilities

ETF workflows that stay close to your data.

ETFray is built for investors who want authoritative fund data, fast comparisons, and portfolio context without moving their workflow into a hosted dashboard.

SEC EDGAR holdings

Research ETF constituents from official fund filings with freshness and source provenance visible in the workflow.

Seasonal return analysis

Compare year-over-year cumulative returns, period tables, and current-month seasonal behavior from the terminal.

ETF comparison

Compare 2 to 5 funds across holdings, exposure, overlap, fees, and return windows in one focused view.

Private watchlist

Track ETFs locally with concentration, sector breakdowns, data freshness, and portfolio overlap at a glance.

IBKR lookthrough

Connect lazily to TWS or Gateway for live positions, margin context, and ETF-level portfolio exposure.

Local SQLite cache

Keep data on your machine with no cloud account, subscription dashboard, or external database dependency.

Screenshots

Built like a finance desk tool, rendered in your terminal.

The interface is keyboard-first and dense enough for repeated research, while keeping each view focused on the next investment question.

Install

Start with one Python package.

ETFray requires Python 3.11+. Optional chart extras enable crisp matplotlib seasonal charts in terminals with image support.

$ pip install etfray
$ etfray

# optional chart support
$ pip install "etfray[charts]"