Flowsurface
An experimental open-source desktop charting application. Supports Binance, Bybit, Hyperliquid and OKX
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 profiles.
-
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 orderbo…
Flowsurface
An experimental open-source desktop charting application. Supports Binance, Bybit, Hyperliquid and OKX
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 profiles.
-
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
Market data is received directly from exchanges’ public REST APIs and WebSockets
Historical Trades on Footprint Charts:
-
By default, it captures and plots live trades in real time via WebSocket.
-
For Binance tickers, you can optionally backfill the visible time range by enabling trade fetching in the settings:
-
data.binance.vision: Fast daily bulk downloads (no intraday).
-
REST API (e.g.,
/fapi/v1/aggTrades): Slower, paginated intraday fetching (subject to rate limits). -
The Binance connector can use either or both methods to retrieve historical data as needed.
-
Fetching trades for Bybit/Hyperliquid is not supported, as both lack a suitable REST API. OKX is WIP.
Installation
Method 1: Prebuilt Binaries
Standalone executables are available for Windows, macOS, and Linux on the Releases page.
Having trouble running the file? (Permission/Security warnings)
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.
Method 2: Build from Source
Requirements
-
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 -
macOS: Install Xcode Command Line Tools:
xcode-select --install -
Windows: No additional dependencies required
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