gitmyhub

etfray

Python ★ 8 updated 1mo ago

Terminal ETF research & portfolio analytics via SEC EDGAR and IBKR

Terminal app that researches ETFs from SEC filings and checks your live Interactive Brokers portfolio, with local SQLite cache and CSV export.

PythonTextualSQLitesetup: moderatecomplexity 3/5

etfray is a small program you run in a terminal window to research ETFs and check the state of your investment portfolio. An ETF is a fund that holds a basket of other assets, and the tool pulls the underlying holdings of those funds directly from filings published by the United States Securities and Exchange Commission, the official regulator. The data is free and public, so you do not need a paid data subscription to use the app.

The research side lets you search for an ETF by ticker, then page through tabs that show its holdings, sector and country exposure, fee information, and concentration figures such as how much of the fund sits in its top 10 or top 50 positions. The portfolio side talks to a piece of software from Interactive Brokers called TWS or IB Gateway, which has to be running on the same machine, to read your live positions and warn you if your margin cushion is thin.

Everything runs locally. Your account credentials never travel to a third party, and fetched data is cached in a SQLite file in your home directory so the app keeps working offline after the first download. There is also an export button that writes the current view to a CSV or JSON file for use in a spreadsheet or another tool.

The interface is built with a Python library called Textual that draws menus, tables, and tabs inside the terminal, and it is designed for people who prefer keyboard shortcuts over a mouse. Installation is a single pip command, Python 3.11 or newer is required, and the project is released under the permissive MIT license.

Where it fits