Cross-platform desktop trading terminal for the Moonbot core
GPU-rendered charts · live MoonProto feed · Windows · macOS · Linux
Русский · English | Features · Screenshots · Architecture · Build · Configuration · Documentation
moonterminal.pro — downloads, the user guide and FAQ in eight languages · Interface tour
MoonTerminal is a desktop shell for Windows, macOS and Linux for controlling Moonbot cores: charts, orders, reports and strategies in one window. The terminal does not trade by itself: it connects to a Moonbot core with a key. The source code is public on GitHub. It is not affiliated with moonterminal.io or with third-party Telegram trading bots under similar names.
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.
- GPU-rendered charts — an own-pass GPU renderer on every platform (DirectX 11 on Windows, Metal on macOS, native
wgpuon 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, Spanish, Ukrainian, Turkish, Brazilian Portuguese, Vietnamese, and Simplified Chinese 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-smokeFireTest probe that reports real chart bounds, native input, and CPU/GPU/RAM counters.
![]() |
![]() |
| Chart workspace — GPU-rendered candles, order book, order lines | Settings → Connections — per-core connection setup |
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-tg |
Telegram bot and Mini App — shared by the desktop terminal and the station. |
moon-ui-gpui |
The moonterminal binary — GPUI shell, panels, debug tooling, chart integration. |
moon-station |
Headless server binary — report replica, order traces, and the trade tape, with no window. |
moon-remote |
Prepares a Linux server for moon-station over SSH, from the terminal's machine. |
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.
git clone https://github.com/Moonbot-Tech/MoonTerminal.git
cd MoonTerminalRequirements:
- 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-msvcDebug executable:
target\x86_64-pc-windows-msvc\debug\moonterminal.exe
Requirements:
- Xcode or a working Metal toolchain
- Rust via
rustup
cargo build -p moon-ui-gpui --bin moonterminalFor canonical Metal validation see the macOS & Linux build guide.
Releases newer than v0.66.0 carry the terminal for x86_64 Linux as one executable,
MoonTerminal-linux-x86_64. The
macOS & Linux build guide has the run-time packages it needs,
the Ubuntu/Debian build packages that CI installs in a bare container, and the Secret Service
setup the encrypted config needs in the user GUI/DBus session. To build it yourself, with the
build packages installed:
cargo build -p moon-ui-gpui --bin moonterminal| 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.
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.
| Guide | What's inside |
|---|---|
| User guide | The website: downloads, the interface reference, the FAQ and the version history in eight languages |
| Interface tour | Interactive tour: the main-window map, first connection, panels, hotkeys |
| Architecture | Crates, per-platform GPU rendering, and the live data path |
| Telegram chat reports | Pairing the bot, the report keyboard and views, notifications |
| 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


