Flowsurface
A native desktop charting platform for crypto markets
Install / Use
npx skills add flowsurface-rs/flowsurfaceInstalls into whichever agent you are using.
README
Flowsurface
An open-source native desktop charting application for crypto markets. Supports Binance, Bybit, Hyperliquid, OKX, and MEXC.
<div align="center"> <img src="https://github.com/user-attachments/assets/baddc444-e079-48e5-82b2-4f97094eba07" alt="Flowsurface screenshot" style="max-width: 100%; height: auto;" /> </div>Key Features
- Multiple chart/panel types:
- Heatmap (Historical DOM): Uses live trades and L2 orderbook to create a time-series heatmap chart. Supports customizable price grouping, different time aggregations, fixed or visible range volume profile.
- Candlestick: Traditional kline chart supporting both time-based and custom tick-based intervals.
- Footprint: Price grouped and interval aggregated views for trades on top of a candlestick chart. Supports different clustering methods, configurable imbalance and naked-POC studies.
- Time & Sales: Scrollable list of live trades.
- DOM (Depth of Market) / Ladder: Displays current L2 orderbook alongside recent trade volumes on grouped price levels.
- Comparison: Line graph for comparing multiple data sources, normalized by kline
closeprices on a percentage scale
- Real-time sound effects driven by trade streams
- Multi window/monitor support
- Pane linking for quickly switching tickers across multiple panes
- Persistent layouts and customizable themes with editable color palettes
Historical Trades on Footprint Charts:
By default, Flowsurface captures and plots live trades in real time via WebSocket.
To backfill the visible time range on footprint charts, enable trade fetching in Settings → Network. Three modes are available:
-
Exchange: Fetches directly from Binance's public REST API and bulk data mirrors (data.binance.vision). Fast for daily archives; paginated and rate-limited for intraday ranges. Binance only (spot, linear, inverse).
-
Server: Fetches from any HTTP server that exposes a
GET /trades.arrowendpoint returning an Arrow IPC stream with:-
Response:
Content-Type: application/vnd.apache.arrow.stream -
Schema (columns matched by name, order not significant):
ts (int64),price (float64),qty (float64),is_sell (bool) -
Query parameters:
venue,market,symbol,from(inclusive),to(inclusive),limit -
Optional bearer-token auth: (
Authorization: Bearer <token>)
Self-signed TLS certificates are accepted. Works with all exchanges and has no exchange rate limits. Bring your own data source.
A reference implementation is available at flowsurface-server, a self-contained collector that writes trades to DuckDB and serves them over this protocol.
-
-
Off: Live trades only; no historical backfill.
Historical klines, open interest, and ticker metadata/stats are always fetched from exchange REST APIs.
Live trades, orderbook and kline updates are streamed from exchange WebSocket feeds.
Installation
Method 1: Prebuilt Binaries
Standalone executables are available for Windows, macOS, and Linux on the Releases page.
<details><summary><strong>Having trouble running the file? (Permission/Security warnings)</strong></summary>Since these binaries are currently unsigned they might get flagged.
- Windows: If you see a "Windows protected your PC" pop-up, click More info -> Run anyway.
- macOS: If you see "Developer cannot be verified", control-click (right-click) the app and select Open, or go to System Settings > Privacy & Security to allow it.</details>
Method 2: Build from Source
Requirements
- Rust toolchain
- Git version control system
- System dependencies:
- Linux:
- Debian/Ubuntu:
sudo apt install build-essential pkg-config libasound2-dev - Arch:
sudo pacman -S base-devel alsa-lib - Fedora:
sudo dnf install gcc make alsa-lib-devel
- Debian/Ubuntu:
- macOS: Install Xcode Command Line Tools:
xcode-select --install - Windows: No additional dependencies required
- Linux:
Option A: cargo install
# Install latest globally
cargo install --git https://github.com/flowsurface-rs/flowsurface flowsurface
# Run
flowsurface
Option B: Cloning the repo
# Clone the repository
git clone https://github.com/flowsurface-rs/flowsurface
cd flowsurface
# Build and run
cargo build --release
cargo run --release
Credits and thanks to
- Kraken Desktop (formerly Cryptowatch), the main inspiration that sparked this project
- Halloy, an excellent open-source reference for the foundational code design and the project architecture
- And of course, iced, the GUI library that makes all of this possible
Community
Discord: https://discord.gg/RN2XAF7ZuR
License
Flowsurface is released under the GPLv3 license. Contributions to the project are shared under the same license.
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.6kCommit, push, and open a PR
