AMARQUANT | Docs
Documentation

Up and running,
fast.

Install, configure, and learn how data flows through AMARQUANT. Everything you need to operate the terminal.

Quick start

One command. The installer detects your OS, generates secrets, seeds an admin account, and launches the full stack at localhost:8000.

bash
$ git clone https://github.com/Hitheshkaranth/OpenTerminalUI.git
$ cd OpenTerminalUI
$ ./install.sh # Windows: ./install.ps1
✓ ready → http://localhost:8000 (credentials printed)

Prerequisites

Either Docker, or — for the local path — Python and Node. Nothing else to configure.

Docker DesktopRecommended — full stack in containers
Python 3.11+Backend (local development only)
Node.js 22+Frontend (local development only)

Run with Docker

bash
$ cp .env.example .env # add API keys if you have them
$ docker compose up --build
$ docker compose --profile postgres up --build # with PostgreSQL

UI and API are served from the backend container at http://127.0.0.1:8000. Use docker compose down -v to wipe the database for a fresh start.

Run locally

Backend
$ python3.11 -m venv .venv
$ source .venv/bin/activate
$ pip install -r backend/requirements.txt
$ uvicorn backend.main:app --reload
Frontend
$ cd frontend
$ npm ci
$ npm run dev
→ localhost:5173

Environment

All keys are optional — the platform runs on built-in fallback data. Add keys to unlock live feeds.

Variable
Purpose
FMP_API_KEY
US equities, fundamentals, earnings
FINNHUB_API_KEY
US real-time WebSocket ticks
KITE_API_KEY
Zerodha Kite — India NSE/BSE live + historical
LM_STUDIO_BASE_URL
Local Gemma endpoint for AI sentiment
OPENROUTER_API_KEY
Powers the AI research agent (free models work)

Data providers

A multi-provider waterfall tries the highest-quality source first and falls back automatically on failure.

India
Provider
Role
Data
Zerodha Kite
Primary
Real-time ticks, OHLCV all intervals
yfinance
Fallback
OHLCV historical (.NS format)
NSEPython
Tertiary
F&O, OI, PCR, corporate actions
US
Provider
Role
Data
FMP
Primary
OHLCV, fundamentals, earnings, news
Finnhub
Real-time WS
WebSocket ticks, OHLCV, news
yfinance
Last resort
OHLCV historical

Caching & failover

request → L1 SQLite hit · L2 Redis hit · primary · fallback 503
Primary cache: SQLite, per-symbol/interval, default TTL 900s
Optional L2: Redis via REDIS_URL, falls back to SQLite
Live WebSocket candles update in-memory without touching cache
Cache warming via OPENTERMINALUI_PREFETCH_ENABLED=1

Keyboard shortcuts

Ctrl+GGO bar — symbol lookup
Ctrl+KCommand palette
Ctrl+JAI research agent
F1–F9Workspace switching
1–7Timeframe hotkeys
EscClose panel or dialog