NEW v0.8.0 — provenance on every number, in-app provider keys, Kite & CSV import, and a Docker image on GHCR. Release notes →
MIT Open source · self-hosted · v0.8.0

One terminal.
Every market,
self-hosted.

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.

// one command · no key to start · SQLite by default · amd64 + arm64
⌕ Type ticker, command, or search… (Ctrl+G)GO
MISSION CONTROL
TRADING DESK
RELIANCE · NSE · 1mLIVE · KITE
WatchlistMIXED
NSE: OPENKITEFINNHUBYAHOOFMPNSE
Mission Control · live previewsimulated ticks
77Screens, one shell
70+Technical indicators
45MCP tools for agents
1,762Automated tests
01 Screen tour

    captured from the real app · seeded data
    ● RECENTLY SHIPPED
    Works with the data you already have · provider waterfall with automatic failover
    Zerodha Kite NSE/BSE live Finnhub US ticks Alpaca FMP fundamentals Yahoo Finance no key NSE F&O, actions FRED FXMacroData no key OpenRouter · LM Studio Claude via MCP
    02 Manifesto

    Terminals were built for institutions.
    So everyone else trades on screenshots.
    So we built one you can own.

    // what we believe

    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.

    03 Product · 8 desks

    Every desk
    a trader needs.

    // one shell, one symbol context
    // Ctrl+G to jump anywhere
    ✦ ZERO CONFIG NEW IN 0.8

    No keys. No signup.
    One command.

    The installer detects your OS, writes a single .env, generates secrets and an admin login, and starts the terminal on localhost:8000.

    • Free data out of the box — Yahoo, NSE, FXMacroData and FRED fallbacks
    • Add keys in the browser — Settings → Data Providers sets, masks and tests them live
    • Or skip the clone — pull the multi-arch image from GHCR
    bash
    # 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
    05 In practice

    What people actually run on it.

    Pre-market

    Morning brief

    Cockpit ranks portfolio risk, alerts, catalysts and movers into one stack before the open.

    cockpit → events hub → watchlist
    Quant research

    Idea → verdict

    Screen, backtest, sweep parameters, then an out-of-sample test that refuses to call a curve fit an edge.

    screener → backtest → model lab
    Derivatives

    Options desk

    Chain with live Greeks, OI build-up and PCR, then build and price a multi-leg strategy.

    option chain → greeks → strategy
    Portfolio

    Import & stress-test

    Sync Kite or drop a Groww/Zerodha CSV, then run VaR, factor exposure and six macro stress scenarios.

    import → risk → stress test
    Automation

    Alerts that act

    Compound rules trigger a paper order, a watchlist add or a webhook — with a dry run before you save.

    alert → action → journal
    Agents

    Claude on your book

    Point Claude Code or Desktop at the MCP server; it reads your positions and proposes, a human confirms.

    mcp → propose_* → you approve
    06 Keyboard first

    Fast hands, not more clicks.

    Ctrl GGO barsymbol or route
    Ctrl KCommand palette25+ functions
    Ctrl JAI agentscreen-aware
    F1–F9WorkspacesBloomberg hotkeys
    1–7Timeframesin any chart
    EscClosepanel or dialog
    RELIANCEMarket followsre-points to NSE
    Right-clickPaper buy/sellfrom any symbol
    PinNav railpinned + recent
    Save viewSaved viewsfilters, tabs, layout
    PresetWorkspacesTrader · Quant · PM
    ThemeTerminal Noirclassic · light
    07 Trust layer

    Trust the numbers.

    // new in 0.8.0
    The unglamorous work — provenance, provider health and screen-by-screen checks — so the terminal never passes off a guess as a price.
    // provenance · every snapshot

    Know where every number came from

    Each quote carries source, quality, as-of and latency. Synthetic data is labelled and never used as a price basis.

    RELIANCE · lastLIVE · KITE
    AAPL · lastDELAYED · YAHOO
    AAPL · P/ECACHED · FMP 4m
    NIFTY · order bookSYNTHETIC
    INFY · ESG scoreNO DATA · needs FMP
    // providers · live status

    Provider health, probed for real

    An expired Kite token reads down, not ok. Admins set, mask, test and clear keys from Settings.

    kiteok
    finnhubok
    yahooslow
    fmpok
    nsedown
    // analysis → action

    Alerts that do things

    Up to five actions per rule, dry-run in the builder.

    RSI < 30 AND vol > 2×→paper BUY 10→webhook
    // agents · mcp

    45 tools, permission-gated

    38 read-only tools; 7 propose_* writes that a human confirms. Every result comes back as {ok, data, provenance}.

    // verified · 0.8.0

    Checked screen by screen

    Every route captured and checked for failed calls and page errors.

    screens clean72 / 72
    08 Deploy · free forever

    Run it your way.

    Installer
    recommended · macOS · Linux · WSL · Windows
    1 cmd
    • Detects Docker or local
    • Generates secrets & admin
    • Prints your login
    • Guided keys: make keys
    ./install.sh
    Install guide →
    Docker image
    GHCR · every release
    :latest
    • linux/amd64 + arm64
    • Tagged X.Y.Z and X.Y
    • Health-checked
    • No clone needed
    docker run -p 8000:8000 \
      ghcr.io/hitheshkaranth/\
    openterminalui:latest
    View package →
    Compose
    backend + Redis + Postgres
    3 svc
    • Redis cache & pub/sub
    • Optional PostgreSQL 16
    • Persistent data volume
    • LM Studio on the host
    docker compose \
      --profile postgres up
    Compose docs →
    Develop
    hot reload · Python 3.11 · Node 22
    MIT
    • FastAPI + React 18
    • Plugin API & scripting
    • make gate runs every check
    • PRs welcome
    uvicorn backend.main:app --reload
    cd frontend && npm run dev
    Contribute →
    Minimum: 2 cores · 4 GB RAM · 2 GB disk. All API keys optional.All releases →
    09 Questions

    Frequently asked.

    Something missing? Read the docs or open an issue.

    Is it really free?

    Yes. OpenTerminalUI is MIT-licensed and runs on your own hardware. The only costs are any paid data providers you choose to plug in.

    Do I need API keys to start?

    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.

    Which markets are covered?

    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.

    How do I know whether a number is live?

    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.

    Can Claude or another agent use it?

    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.

    Does it place real trades?

    No. Orders go to the built-in paper-trading engine. The agent never executes anything — it proposes, you approve.

    Can I run the AI features locally?

    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.

    What does it need to run?

    Docker, or Python 3.11 and Node. 2 cores and 4 GB RAM is enough; SQLite by default, PostgreSQL and Redis optional.

    10 Start today

    Own your terminal.
    Not a subscription.

    Free and open source. Running in about two minutes.