Skip to content

Wickra TerminalOne core. Ten languages. Two renderers.

A streaming trading terminal on the Wickra core — live charts, order-book, tape and 514 indicators — with a native TUI and a Web front-end as selectable renderers of the same logic.

Wickra Terminal

The config is JSON, not code

A Config names the sources to activate and the panel layout. The terminal folds each source's feed into an O(1) state and renders the panels as view-models.

json
{
  "sources": [{ "Synth": { "seed": 1 } }],
  "layout": {
    "panels": [{ "kind": "Chart", "rect": { "x": 0, "y": 0, "w": 100, "h": 100 } }]
  }
}

Because the config is data, the same terminal crosses the C ABI and WASM unchanged, and the same frame comes back byte-for-byte in every language.

Install

The same terminal core from every language — native Rust, Python, Node.js and WASM, plus a C ABI for C, C++, C#, Go, Java and R.

pip install wickra-terminal

Drive the core, render anywhere

Build a terminal from a config, subscribe a symbol, then pull frames. The command API returns the same bytes in every binding — the Web renderer is just another consumer of these frames.

import json
from wickra_terminal import Terminal

config = json.dumps({
    "sources": [{"Synth": {"seed": 1}}],
    "layout": {"panels": [{"kind": "Chart", "rect": {"x": 0, "y": 0, "w": 100, "h": 100}}]},
})

term = Terminal(config)
term.command(json.dumps({"type": "Subscribe", "source": 0, "symbol": "BTC/USDT"}))
raw = ""
for _ in range(20):
    raw = term.command(json.dumps({"type": "Tick"}))
print(json.loads(raw)["panels"][0])

Built on the Wickra core

Wickra Terminal is part of the Wickra ecosystem. Its panels are driven by the same typed feeds and indicators that wickra-core, wickra-exchange and wickra-backtest produce, so the terminal shows exactly the numbers a backtest or a live strategy would see.

Wickra Terminal is a software library, not a trading system, and gives no financial advice — use at your own risk.