Skip to content

About

A native desktop charting platform for crypto markets

Topics

Resources

Stars

1.8k stars

Watchers

25 watching

Forks

Repository files navigation

Flowsurface

Crates.io Lint Format Discord License: GPL v3 Made with iced

An open-source native desktop charting application for crypto markets. Supports Binance, Bybit, Hyperliquid, OKX, and MEXC.

Flowsurface screenshot

Key Features

  • Multiple chart/pane types:
    • Time & Sales: Scrollable list of live trades that can be merged across multiple tickers.
    • DOM (Depth of Market) / Ladder: Displays current orderbook alongside recent trade volumes on grouped price levels.
    • Heatmap (Historical DOM): Uses live trades and orderbook to display a time-series heatmap chart. Supports customizable price grouping and different timeframes.
    • Candlestick: Footprints, profiles, scriptable indicators, custom tick-based intervals. See Indicators and Studies.
  • Real-time sound effects driven by trade streams
  • Multi window/monitor support on macOS and Linux.*
  • Persistent layouts, chart presets, themes with editable color palettes.

Market Data

Live: Trades, orderbook, and kline updates stream from exchange WebSocket feeds.

Historical trades: Optional backfill for the visible range on time-based candlestick charts. Can be enabled in Settings → Network. Three modes are available:

  • Off: No historical backfill.
  • Exchange: Fetches directly from Binance's public REST API and bulk data mirrors (data.binance.vision). Daily archives use bulk files and are cached on disk for reuse; intraday ranges are paginated and rate-limited. Binance only (spot, linear, inverse).
  • Server: Fetches from a server that exposes a GET /trades.arrow endpoint. The reference implementation, flowsurface-server, is a self-contained collector that writes trades to DuckDB and serves them over this protocol. See its README for the schema, query parameters, and auth. Works with every exchange the app supports, provided the server collects that venue.

Historical klines, open interest, ticker metadata/stats: Always fetched from exchange REST APIs, regardless of the trade-fetch mode.

Indicators

Candlestick charts include bundled indicators, more can be added manually or using the catalog browser.

Catalog browser: Open the chart pane's Indicators sidebar and click +. The browser fetches a manifest of contributed indicators from https://api.flowsurface.com. The manifest is built from the catalog repository at a pinned commit; installing downloads the selected .ind source from the catalog server, verifies it against the manifest checksum, and compiles it locally before installation.

Manual install: Open Settings → Open data folder and copy .ind files into indicators/, then restart the app. The data directory is $FLOWSURFACE_DATA_PATH when set, otherwise your platform's data directory under flowsurface/. The installed-indicator directory can also be overridden with FLOWSURFACE_INDICATORS_PATH.

To write your own indicators, see the language reference and examples and the CLI workflow.

Studies

Footprint requires Trade data to be enabled in the pane settings and enough zoom for their columns to be visible. Backfill is optional and is configured in Settings → Network. Some details that may not be clear in the UI:

  • A pane uses one profile source: candle-based or trade-based. Same-source studies can coexist (one visible-range profile, one recurring profile, one TPO); the Big Trades study is trade-only and independent.
  • Candle-based studies are sourced using lower timeframe Kline data: 1m up to 2h, 3m up to 4h, 5m up to 12h, and 15m above that. They are approximations: a candle only gives a high/low range, so volume is spread across that range and TPO marks it. Without a buy/sell split, the candle's volume is treated as buy when close >= open, else sell.
  • Trade-based studies use actual prints, so they are more precise, but need trades data, optionally backfill and more processing. Trade versions exist for volume and TPO profiles.
  • TPO anchors are UTC; initial balance is the first hour from the profile start (for weekly/monthly, the first hour of that week/month).
  • The Big Trades study filters on quote-currency notional; rings group multiple trades.

Installation

Method 1: Prebuilt Binaries

Downloads are available on the Releases page.

  • macOS: Open the universal DMG and drag Flowsurface into Applications. Supports Apple Silicon and Intel Macs running macOS 11 or newer.
  • Windows: Run the x64 MSIX to install for your current user, then launch Flowsurface from the Start menu. No administrator approval is required.
  • Linux: Extract the archive and run ./install.sh without sudo, then launch Flowsurface from the application menu. Run ./install.sh from a newer archive to upgrade, or ./uninstall.sh to remove the app. Settings and credentials are preserved. For portable use, run ./bin/flowsurface directly.
Having trouble running the file? (Permission/Security warnings)

Windows executables and MSIX installers are code-signed; macOS apps have no Apple Developer ID signature or notarization. Security warnings may still appear.

  • Windows: If App Installer cannot verify the publisher or signing certificate, report the installation error.
  • 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

  • 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
    • 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

Platform Notes

Windows

⚠️ Multi-window support is disabled on Windows due to a redraw issue affecting iced’s current winit backend.

Community

Discord: https://discord.gg/RN2XAF7ZuR

Acknowledgments

  • Free code signing for Windows releases is provided by SignPath.io, certificate by SignPath Foundation
  • Kraken Desktop (formerly Cryptowatch), the main inspiration that sparked this project
  • Halloy, an excellent open-source IRC client, the main reference for the foundational code design
  • And of course, iced, the GUI library that makes this possible

Privacy

Flowsurface has no telemetry or analytics. See PRIVACY.md for the services it contacts and what stays local.

License

Flowsurface is released under GPL-3.0-or-later. Some components use separate licenses:

Component License
Application, data crate, and bundled indicators GPL-3.0-or-later
Indicator engine and CLI Apache-2.0
Indicator catalog and its documentation Apache-2.0
Exchange adapters (flowsurface-exchange) MIT

Contributions follow the license of the component being changed; submit catalog indicators to the indicators repository.

About

A native desktop charting platform for crypto markets

Topics

Resources

Stars

1.8k stars

Watchers

25 watching

Forks

Releases

Used by

Contributors

Languages