vike
Getting started

Your first chart

Launch the desktop app, find a symbol in the cross-venue picker, and read what the live chart is actually showing you.

The desktop app opens on a live chart, so "your first chart" is mostly learning what is on it and how to change it. Five minutes, no credentials — the default feed is Binance's public kline stream.

What you need

  • vike-desktop — Windows or Linux — and the GPU Requirements names. It compiles in no local core and no venue bridge, so it charts what a daemon streams it: Observe mode.
  • A running vike-tradehub node to point it at. There is no build that trades on its own.
  • Internet access to Binance's public endpoints (crates/bridges/binance/src/market_feed.rs's BINANCE_URLS).

1. Launch

vike-desktop

The window opens maximized and frameless with its own caption, titled vike_trader_rust — live. With no saved workspace, crates/vike-app-core/src/startup.rs's plan opens the default layout: one BTCUSDT 1m chart on Binance with an SMA overlay and RSI and MACD panes, its feed ensured before the window is published. A saved workspace wins over that default on every later start, and the last-used named layout wins over the plain file (restored_workspace).

2. Read what you are looking at

The data path is main.rs's header: feed threads → the core's ingest (lossless bar closes, conflated forming bars and ticks) → the core-owned bar cache → an arc-swapped CoreSnapshot → the GUI's render model, with the GUI a lossy observer of core state. Per (symbol, interval) the Binance feed runs one thread — a REST kline backfill as the warmup seed, then the public kline WebSocket — closed bars on the lossless lane, forming updates and last-price ticks on the conflating one (market_feed.rs's header). So the right-most candle moves between closes; the ones behind it are final.

The panel (crates/vike-chart/src/chart/mod.rs's header): a right price axis with a price-tag chip, a time axis with an hourly grid, a dashed last-price line, a crosshair with a time tag, bottom nav buttons (− + ‹ › ⟳) plus Auto, and a style selector. Charts follow the live edge and auto-fit y out of the box (vike_chart::interact::FollowLive): appended bars keep the view pinned right, panning or zooming away disengages, Reset/Auto — or panning back — re-engages. ChartStyle::ALL holds 20 styles, from candles through Renko, Kagi and Point & Figure to Footprint.

Everything else sits on one title bar (crates/vike-desktop/src/chart_window.rs's title_bar): the style menu, the symbol and interval buttons, the sync-group chip, ƒx (indicators), OF (CVD / Volume Profile / tick size), Cmp (compare overlays), the LIVE badge, and the clone / minimize / maximize / close controls.

3. Pick a symbol

Click the symbol. The popup opens with a focused Search symbol box, asset-class tabs — All, then Stocks, Forex, Crypto, Perps, Options, Futures, Indices, Prediction (PICKER_TABS) — and a venue button cycling All → binance → bybit → okx → hyperliquid → All (PICKER_VENUES). Results come from vike_catalog::Catalog::search, up to 60 rows: exact symbol first, then symbol prefix, base prefix, substring; ties broken by quote (USDT, USDC, USD, BTC, others) and then catalog order. An empty query returns the filtered head, so the list is useful before you type. Clicking a row sets symbol and venue together and carries the asset class, so a non-spot symbol routes to its native product feed; a non-Binance chart shows a VENUE: prefix on the symbol button.

The catalog is fetched once, off the UI thread (main.rs's spawn_catalog_fetcher): every wired venue's CatalogProvider contributes its universe, a failing provider contributes nothing, and the credential-gated ones (Alpaca, OANDA, cTrader) yield nothing without keys. Until it lands the popup shows the quick-picks BTCUSDT, ETHUSDT, SOLUSDT (SYMS), Binance symbols that reset the venue to Binance.

The picker searches twelve venues; the app charts six

crates/vike-app-core/src/feed_lifecycle.rs's ensure_feed_on doc: the app registers live clients for binance, bybit, okx, aster, hyperliquid and polymarket, while the picker searches a twelve-venue catalog. Pick an alpaca, oanda, dukascopy, fxcm or ctrader instrument and the window lands on a venue with no feed — it paints nothing and warns once. Perps, futures and options chart only on okx, binance, bybit, aster and hyperliquid; deribit and polymarket rows of those classes skip the subscribe (venue_routing::venue_bar_instrument).

4. Change the interval

Click the interval: 1s, 1m, 5m, 15m, 1h are venue klines (IVLS); below the separators, 100t / 500t / 1000t are tick-count bars and 1v / 10v / 100v are volume-threshold bars, both built client-side from the trade tape (TICK_IVLS, VOLUME_IVLS).

5. Add an indicator

ƒx opens the indicator picker — search, category tabs, favourites, your own installed studies, and the "On this chart" list with a per-study settings ⚙ (tool_views::fx_picker); the catalog lists what it offers. OF's CVD and Volume Profile toggles make the window lazily subscribe the trade feed (WinState::orderflow_on); Cmp adds a percent-normalized overlay of another symbol, and the first overlay flips the price scale to Percent because overlays draw only there (WinState::add_compare).

More windows, and saving

File ▸ New chart window cascades a fresh chart (crates/vike-app-core/src/workspace/menu.rs's menu_bar; the Window menu holds the arrange verbs). The title bar's clone copies the source window's symbol and interval.

A clone loses its venue

crates/vike-app-core/src/window_spawn.rs's header pins it: a clone keeps symbol and interval but not venue, so cloning an OKX chart yields a window pointed at Binance carrying an OKX symbol, subscribed by nobody. Open a new window and pick the symbol again instead.

File ▸ Save Workspace writes the chart layout — symbol, interval, style, geometry, scale, options, panes, indicators — to <project>/settings/state/workspace.json ($VIKE_WORKSPACE overrides), restored at startup; File ▸ Save layout as… keeps named layouts under layouts/<name>.json beside it (crates/vike-app-core/src/workspace/persist.rs). Tool windows are not saved; the launcher recreates them. View ▸ Timezone and File ▸ Export chart image… are the other two menu verbs worth knowing (workspace::menu::MenuResult).

Verify

The last candle changes between bar closes and the dashed last-price line tracks it; the right-most close arrives on the interval you picked.

Where to next

Troubleshooting

  • The chart is empty after picking a symbol. The venue has no feed, or the product has no bar feed on that venue — the callout in step 3. Pick the same instrument on binance, bybit, okx, aster or hyperliquid.
  • The picker shows only three symbols. The catalog has not loaded or every provider failed (no network); the quick-picks are the fallback. Only Deribit's catalog is linked into this binary, by design — every other provider answers over the wire.
  • A cloned window never paints. It dropped its venue — the callout above.
  • The saved layout did not come back. restored_workspace skips the restore under VIKE_SHOT; otherwise confirm <project>/settings/state/workspace.json exists — File ▸ Save Workspace is its only writer.

More in Troubleshooting.

On this page