Native desktop · Rust + egui · v0.1.0

A trading terminal
for Alpaca Markets,
on your desktop.

Live charts, multi-asset risk/return compare, an options desk, a crypto desk, and full order management — in one fast native window. Built in Rust with egui, streaming real-time data over WebSocket. Paper trading by default.

Alpaca Trading Terminal — AAPL
Trading Terminal Chart Compare Options Crypto
AAPL $232.18 ▲ +$2.26 (+0.98%) H 233.40 L 229.10 EMA 10 VWAP

Illustrative UI preview · Chart tab with EMA + volume panes

5 tabs
Terminal · Chart · Compare · Options · Crypto
7
Built-in indicators
Live
WebSocket streaming
~5–9 MB
Single binary, no runtime

Everything in one window

Five workspaces over the Alpaca REST + data APIs, with a shared live tick cache, command palette, and watchlist riding along on every tab.

TradingView-style charts

Multi-pane candlesticks — price, volume, RSI, MACD — with a shared X-axis and linked crosshair: pan, zoom or hover any pane and the rest move in lockstep. A right-side price scale that auto-fits the visible range, a live last-price tag, a date/time axis under the bottom pane, and charting for stocks and crypto pairs.

7 indicators, hotkey-toggled

EMA, SMA, Bollinger Bands, VWAP, Volume, RSI (Wilder) and MACD — pure Rust math, unit-tested. Toggle each with a single key (E S B U V I O).

Real-time streaming

A dedicated WebSocket thread streams trades, quotes and minute bars into a shared tick cache. Charts patch tick-by-tick and the positions table re-prices P&L live between snapshots.

Full order management

Positions, Trade, Orders and Activity sub-tabs. Place market, limit, stop, stop-limit, trailing-stop and bracket orders — each routed through a confirm-before-fire modal.

Multi-asset Compare

Normalized return lines, drawdown, correlation heatmap, risk/return scatter, and a Monte Carlo growth projection — all aligned to a common history so the math lines up.

Options desk

Type an underlying, pick an expiration, and read a live calls/puts strike grid — bid, ask, last, volume and open interest. Place single-leg market or limit orders through the same confirm-before-fire modal, with live quotes overlaid from a second WebSocket.

Crypto desk

Every tradable USD pair in one live Markets grid — bid/ask/last, 24h change and volume — that doubles as the trade ticket. Market, limit and stop-limit orders, sized in fractional quantity or notional dollars, on an always-on 24/7 data stream.

Command palette & watchlist

A Bloomberg-style command bar (press /) jumps symbols and tabs. A persistent watchlist and ticker tape ride along on every tab, and your layout is saved to disk between sessions.

Download

Free, self-contained binaries — no installer chrome, no runtime to manage. Pick your platform below; we’ll highlight the one that matches your system.

Windows

Windows 10 / 11 · 64-bit · portable .exe

Download .exe 5.4 MB

Binaries are unsigned. See the install notes below for the one-time Gatekeeper / SmartScreen step.

Install & run

On first launch the app prompts for your Alpaca API key & secret and stores them at ~/Library/Application Support/alpaca-tui/credentials.json (or the OS-equivalent). It defaults to the paper-trading API.

macOS

  1. Open the .dmg and drag the app out, or download the universal binary.
  2. First run is blocked by Gatekeeper (unsigned). Clear the quarantine flag:
chmod +x Alpaca_Trading_Terminal_Rust_MAC_UNIVERSAL
xattr -d com.apple.quarantine \
  Alpaca_Trading_Terminal_Rust_MAC_UNIVERSAL
./Alpaca_Trading_Terminal_Rust_MAC_UNIVERSAL

Or: right-click → Open → Open to bypass once.

Windows

  1. Double-click Alpaca_Trading_Terminal_Rust_WIN.exe.
  2. SmartScreen may warn (unsigned). Choose More info → Run anyway.
  3. Re-enter credentials any time with the reset flag:
Alpaca_Trading_Terminal_Rust_WIN.exe --reset

Portable — no installer, runs from anywhere.

From source (Linux / any)

  1. Needs the Rust toolchain.
  2. Build the release binary and run it:
cd main-trading-terminal-rust
cargo build --release
./target/release/alpaca-egui

Linux TLS uses native-tls — install libssl-dev / pkg-config if linking fails.

Bring your own keys. You’ll need an Alpaca account and API keys. The credentials file is shared with the other terminal builds in this project, so binaries swap without re-entering keys.

Open source

Built in Rust 2021 on eframe / egui / egui_plot, with ureq for REST and tungstenite for the live WebSocket. The Rust app lives alongside Go and Electron ports of the same terminal in one repository.

Stack
Rust 2021 eframe 0.29 egui 0.29 egui_plot ureq tungstenite serde chrono csv anyhow
18
source files
paper-api
safe by default