Skip to content

Repository files navigation

Moonbot

MoonTerminal

Cross-platform desktop trading terminal for the Moonbot kernel
GPU-rendered charts · live MoonProto feed · Windows · macOS · Linux

Build Release Status: in development Platforms Built with Rust GPU backends

Русский · English   |   Features · Screenshots · Architecture · Build · Configuration · Documentation

User guide — an interactive tour of the terminal interface

MoonTerminal is a native desktop trading terminal for the Moonbot cryptocurrency-trading kernel. It renders live charts, order books, orders, reports, and strategies for one or more Moonbot cores from a single GPU-accelerated window on Windows, macOS, and Linux.

Work in progress. This is the active development workspace for the terminal — a GPUI shell, MoonUI integration, the MoonProto live feed, per-platform GPU chart rendering, and debug tooling. It is not a finished, packaged product yet.

MoonTerminal main window

Features

  • GPU-rendered charts — an own-pass GPU renderer on every platform (DirectX 11 on Windows, Metal on macOS, native wgpu on Linux). No CPU readback, so live scroll and zoom stay smooth without repainting the whole window.
  • Live MoonProto feed — event-driven market data through a waker-based backend loop. The visible chart pulls data on the frame tick instead of constant polling.
  • Trading panels — orders and order editing, order book, reports, assets & wallets, a market screener, and a strategy tree for your Moonbot cores.
  • Order lines on chart — live order lines are built from the current snapshot plus captured events, so short terminal statuses (Cancel / Fail / Done) are never dropped.
  • Detachable multi-window layout — chart tabs and dock panels pop out into separate windows; dock and layout state persist between sessions.
  • Localized UI — Russian, English, and Spanish via rust-i18n.
  • Encrypted configuration — server credentials are stored through the OS secure storage / keyring (Secret Service on Linux).
  • Desk-ready details — alert sounds, coin icons, custom hotkeys and themes, plus a built-in chart-smoke FireTest probe that reports real chart bounds, native input, and CPU/GPU/RAM counters.

Screenshots

Chart workspace Settings — connections / Moonbot cores
Chart workspace — GPU-rendered candles, order book, order lines Settings → Connections — per-core connection setup

Architecture

MoonTerminal is a Rust virtual workspace built around a UI-agnostic core with the GPUI shell on top.

Crate Responsibility
moon-core UI-agnostic kernel — connections, config, sessions, market state, reports.
moon-chart Chart math — time/price view, default scale, pan/zoom, axes (wgpu-free).
moon-ui-gpui The moonterminal binary — GPUI shell, panels, debug tooling, chart integration.
Moonbot-Tech/MoonUI External Git dependency — standalone GPUI runtime + Moon UI components.

Rendering. The chart draws through a dedicated GPU pass on top of MoonUI/GPUI — DX11/HLSL on Windows, Metal on macOS, the native GPUI wgpu/WGSL backend on Linux. The chart decides whether a frame is needed and prepares its data for that same frame, so the shell and order panels never repaint at live-scroll or mouse-move frequency.

Data path. MoonProto events arrive through an event sink with a waker; the backend loop wakes on real events and commands rather than a timer. The visible chart pulls market data on the frame tick, while a core-owned shared read-model serves the other consumers.

See the architecture doc for the full picture.

Build

Clone

git clone https://github.com/Moonbot-Tech/MoonTerminal.git
cd MoonTerminal

Windows

Requirements:

  • Git
  • Rust via rustup
  • Visual Studio 2022 Build Tools with the C++ toolchain and Windows SDK
  • Optional: make
cargo build -p moon-ui-gpui --bin moonterminal --target x86_64-pc-windows-msvc

Debug executable:

target\x86_64-pc-windows-msvc\debug\moonterminal.exe

macOS

Requirements:

  • Xcode or a working Metal toolchain
  • Rust via rustup
cargo build -p moon-ui-gpui --bin moonterminal

For canonical Metal validation see the macOS & Linux build guide.

Linux

Ubuntu/Debian baseline:

sudo apt update && sudo apt install -y git build-essential pkg-config \
  libfontconfig-dev libwayland-dev libxkbcommon-dev libvulkan-dev libssl-dev
cargo build -p moon-ui-gpui --bin moonterminal

The Linux encrypted config uses Secret Service in the user GUI/DBus session. Details in the macOS & Linux build guide.

Common commands

Command Purpose
make run build and run the debug terminal
make build debug build
make release release build
make check type check
make fmt cargo fmt
make clean clean target
make update-moon-ui move the MoonUI pin in the committed Cargo.lock
make update-moonproto move the MoonProto pin (its own deliberate commit)
make update-all move EVERYTHING including the pinned forks — lifts the version freeze

The Makefile selects the MSVC target on Windows and the native target on macOS/Linux.

Configuration

Servers are configured in the application UI:

Settings → Connections

Per-core connection setup — see the Settings → Connections screenshot above.

Runtime config lives next to the executable. Server credentials are stored in encrypted config using the OS secure storage / keyring where available. Local config files and logs are ignored by Git.

Documentation

Guide What's inside
User guide Interactive tour: the main-window map, first connection, panels, hotkeys
Architecture Crates, per-platform GPU rendering, and the live data path
FireTest The built-in chart-smoke live probe
macOS & Linux build Metal validation and Linux setup
Windowing Custom title bar and borderless/CSD behavior

Moonbot · Advanced terminal for cryptocurrency trading · moonbot.pro

About

Development repository for the Moonbot cross-platform terminal

Resources

Contributing

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages