ErTasselli/OpenTerminal
FinanceRun a local, keyboard-driven market terminal for US stocks, crypto, macro data and a small portfolio tracker.
OpenTerminal is a self-hosted, terminal-style trading dashboard that pulls quotes, charts, news, options and macro series from free public endpoints without paid API keys or signups. It suits individuals who want a dense, customizable market workstation on their own machine for research and learning, not order execution.
What it does
A widget-based workspace (drag, resize, add, remove) holds panels for a quote panel, chart with 8 timeframes and six technical indicators, per-symbol and global news, a full US-market screener, a sector heatmap, options chain, a crypto board, a Treasury/VIX macro view, an economic and earnings calendar, and a portfolio tracker that records buy/sell transactions with average cost and realized/unrealized P&L. Layouts persist locally, and quotes and indexes refresh roughly every second.
A ⌘K palette searches stocks, ETFs and crypto; ⌥1–⌥9 add widgets.
How the data works
Each data type maps to a primary free source with an automatic fallback chain — for example quotes try Nasdaq, then Yahoo Finance, then Stooq; crypto quotes try CoinGecko then Binance. A TTL cache with stale-while-revalidate keeps a provider hiccup from blanking the UI, and providers are isolated modules under server/src/providers/, which the author describes as a roughly 30-minute job to swap or add (data sources).
The README is explicit that these are public, sometimes reverse-engineered endpoints, so prices are delayed or indicative and not execution-grade (disclaimer).
Requirements and constraints
- Runtime: Node.js with npm for the quick start (
npm install,npm run dev); Docker is also supported viadocker compose up --build, with portfolio SQLite data persisted in a named volume (quick start). - Optional AI assistant: the AI widget needs an
ANTHROPIC_API_KEY; without one, everything else works and the widget shows as unavailable.ANTHROPIC_BASE_URLandANTHROPIC_MODELcan point it at another compatible endpoint (setup). - Exposure defaults: the API binds to
127.0.0.1and only accepts the local web origin. Opening it to a network requires settingAPI_HOST,API_KEYandWEB_ORIGINdeliberately, and the project does not handle HTTPS itself (security defaults). - Known advisories:
npm auditreports a moderatefast-xml-parseradvisory (the vulnerable builder path is not used) and a high-severitypostcssissue bundled in Next.js that needs a major-version upgrade; both are acknowledged rather than force-fixed (known limitations). - Licence and use: MIT, but the README limits the project to personal and educational use and warns against real investment decisions; free data sources are generally licensed for personal/research only and prohibit commercial redistribution (disclaimer).
It is source code you run yourself — it does not host or redistribute data for you.
Written by AI from the project's README, updated October 30, 2026. The project's own docs are the source of truth.