Morning brief
Cockpit ranks portfolio risk, alerts, catalysts and movers into one stack before the open.
A Bloomberg-style financial terminal you run on your own machine — equities, F&O, crypto, macro, portfolio risk, backtests and an AI research agent, with every number labelled with where it came from.
NSE, BSE, NYSE and NASDAQ plus crypto, forex, commodities, bonds, ETFs and mutual funds. Starts on free data with no API keys; add Kite, Finnhub or FMP when you want live feeds.
A number without a source is a rumour. Every snapshot says live, delayed, cached or synthetic — and which provider served it.
Blank beats invented. If a provider can't fill a metric, the cell says why instead of showing a plausible-looking guess.
Your data stays on your machine. Self-hosted, MIT, local LLMs welcome. No telemetry, no seat licence.
Analysis should end in action. Alert → paper order, screen → backtest, idea → out-of-sample verdict — in one shell.
One page per symbol, across US and Indian markets.
Up to nine linked panels with synced crosshairs.
Query builder, formula engine and factor ranks.
Chains, Greeks, OI and flow for NSE and US.
Holdings-first, with broker and CSV import.
From template to walk-forward in one flow.
Tool-using, screen-aware and debate-capable.
Everything that isn't a single stock.
The installer detects your OS, writes a single .env, generates secrets and an admin login, and starts the terminal on localhost:8000.
# clone and install — Docker if you have it, else Python + Node $ git clone https://github.com/Hitheshkaranth/OpenTerminalUI.git $ cd OpenTerminalUI && ./install.sh ✓ OpenTerminalUI is ready → http://localhost:8000 email: admin@openterminal.local password: <generated> # …or just run the image $ docker run -p 8000:8000 \ ghcr.io/hitheshkaranth/openterminalui:latest
Cockpit ranks portfolio risk, alerts, catalysts and movers into one stack before the open.
Screen, backtest, sweep parameters, then an out-of-sample test that refuses to call a curve fit an edge.
Chain with live Greeks, OI build-up and PCR, then build and price a multi-leg strategy.
Sync Kite or drop a Groww/Zerodha CSV, then run VaR, factor exposure and six macro stress scenarios.
Compound rules trigger a paper order, a watchlist add or a webhook — with a dry run before you save.
Point Claude Code or Desktop at the MCP server; it reads your positions and proposes, a human confirms.
Each quote carries source, quality, as-of and latency. Synthetic data is labelled and never used as a price basis.
An expired Kite token reads down, not ok. Admins set, mask, test and clear keys from Settings.
Up to five actions per rule, dry-run in the builder.
38 read-only tools; 7 propose_* writes that a human confirms. Every result comes back as {ok, data, provenance}.
Every route captured and checked for failed calls and page errors.
./install.shInstall guide →
docker run -p 8000:8000 \ ghcr.io/hitheshkaranth/\ openterminalui:latestView package →
docker compose \ --profile postgres upCompose docs →
uvicorn backend.main:app --reload cd frontend && npm run devContribute →
Yes. OpenTerminalUI is MIT-licensed and runs on your own hardware. The only costs are any paid data providers you choose to plug in.
No. It runs on free sources (Yahoo, NSE, FXMacroData, FRED) out of the box. Keys for Kite, Finnhub, FMP or Alpaca unlock live ticks and deeper fundamentals, and can be added later from Settings → Data Providers.
NSE, BSE, NYSE and NASDAQ equities, NSE and US options, plus crypto, forex, commodities, bonds, ETFs and mutual funds. Opening a symbol re-points the whole terminal to its market.
Every snapshot carries a provenance chip — LIVE, DELAYED, CACHED, SYNTHETIC or NO DATA — with the serving provider and as-of time. The status bar shows per-provider health.
Yes. The built-in MCP server exposes 45 tools over stdio or HTTP. An API key maps to a user, read keys only reach read tools, and write tools only create proposals that you confirm.
No. Orders go to the built-in paper-trading engine. The agent never executes anything — it proposes, you approve.
Yes. Point it at LM Studio (e.g. a Gemma model) for news sentiment and the agent, or use OpenRouter's free models. Nothing leaves your machine when you run locally.
Docker, or Python 3.11 and Node. 2 cores and 4 GB RAM is enough; SQLite by default, PostgreSQL and Redis optional.
Free and open source. Running in about two minutes.