Desktop · 2026
Helios Terminal
A desktop research cockpit that merges Bloomberg's command grammar with TradingView's chart engine.
39 Mnemonics
Desktop
2026
Key decisions
- The command bar adopts the `<security> <exchange> <function> <argument>` grammar, because once it is in your hands you stop looking at the screen while you navigate.
- Panels are colour-linked into channels that share a security, so two names can be compared side by side without losing your place in either.
- The chart engine is TradingView's Lightweight Charts, because writing a worse candlestick renderer is not an interesting use of anyone's time.
- Bars migrated from SQLite to a columnar DuckDB store that is fingerprint-verified at startup before the switch, because analytic scans outgrew the compatibility backend while rollback had to stay one environment variable away.
Two DNAs
Bloomberg and TradingView solve different halves of the same job, and neither borrows from the other. Helios is the argument that they should.
From Bloomberg — the persistent command bar. You do not navigate a menu; you
type AAPL US GP 1Y and a price graph appears. MSFT FA opens fundamentals.
NI TECH filters news. FRED DGS10 pulls a series straight from the St. Louis
Fed. The grammar is <security> <exchange> <function> <argument>, and once it is
in your hands you stop looking at the screen while you navigate.
The parser is hand-rolled rather than library-built, because the bar has to
answer every keystroke in under five milliseconds and the grammar is
deliberately tiny. Commands chain with ; — AAPL GP; AAPL FA; AAPL NI opens
three panels — and symbols are namespace-aware: BRK.B, ^GSPC, ES=F and
CG:bitcoin each route to the right provider. All thirty-nine mnemonics live in
one registry, and the HELP panel is generated from it, so the directory can
never drift from what the bar actually accepts.
Also from Bloomberg: colour-linked channels. Panels tagged to the same colour share a security. Change the ticker in one and every panel on that channel follows; panels on other channels hold their own state, and channel zero is explicitly unlinked for a panel that should keep its own symbol regardless. It is the fastest way anyone has built to compare two names side by side without losing your place in either.
From TradingView — the actual Lightweight Charts engine, because writing a worse candlestick renderer is not an interesting use of anyone’s time.
Once the grammar is in your hands you stop looking at the screen while you navigate. That is the whole argument for a command bar over a menu.
Why it is a desktop application
A terminal that takes a second to respond is not a terminal. Tauri 2 gives a Rust core for data fetching, caching and persistence, with the UI in React 18 over a narrow command surface that is typed end to end: the IPC contracts are Rust structs exported through ts-rs into generated TypeScript bindings, so a schema change fails at build rather than at runtime.
Seven data providers — Yahoo, Finnhub, Coinbase, Binance, CoinGecko, SEC EDGAR and FRED — sit behind reqwest and tokio with dedicated cache, request-coalescing and retry modules, and API keys live in the OS keychain rather than in files. Provider calls run in the Rust core, not the webview, and the local copilot is loopback-only by design: it talks to Ollama or LM Studio on 127.0.0.1 and nowhere else.
Bars are cached in a columnar DuckDB store — migrated from SQLite with fingerprint verification at startup, one environment variable away from rollback — while SQLite keeps the workspace, journal, watchlist and preference state. Cold start is under a second, and panel switching is immediate because the data is already resident.
The workspace itself is dockview tiling, with panels lazy-loaded behind a CI-enforced entry-bundle budget of 204,800 bytes, so thirty-seven panel kinds do not tax first paint. The typography is doing real work here: everything numeric is monospaced and tabular, so columns align down the panel and a changed digit is visible in peripheral vision. Dense is the point.