Open source · MIT · WebGL2

The charting engine we built for Pairlens. Now it's yours.

High-frequency ticks, 90 indicators computed off the main thread, 42 drawing tools, multi-pane layouts and an AI-ready MCP control surface. Standalone, free, MIT-licensed. The chart below is the real thing: pick a tool from the rail and draw on it.

View on GitHub

One engine, every layout

Seven chart types. Any pane arrangement.

Six more live instances, each a different instrument, timeframe and indicator stack. Every chip below is real: click one and that chart reconfigures on the spot.

765ktick updates / sec

WebGL2, built for the hot path

GPU-instanced candles, layered canvases with a dirty-flag scheduler, and O(1) pan/zoom via shader uniforms. Ticks mutate the last bar in place; React is never in the loop.

90built-in indicators

Indicators, off the main thread

Moving averages, oscillators, bands, trend, volume and volatility, all computed in a Web Worker and committed once, so the chart never stutters under analysis.

0CSS classes shipped

Headless by design

The engine owns the canvases; your app owns every pixel of chrome. Toolbars, HUDs, context menus and modals are yours, so it drops into any design system.

52MCP tools

AI-native control surface

A deterministic, MCP-compatible tool schema and executor lets an AI agent (or your own automation) drive the chart exactly the way a user does.

42drawing tools

Trader-grade features

Trend lines, Fibonacci, pitchforks, Gann, Elliott waves, position boxes, each with handles, magnet snapping and undo/redo. Plus seven chart types, four price-scale modes, multi-pane layouts, markers and compare modes.

MITfree forever

Actually open

No tiers, no watermark, no "contact sales" features. Fork it, extend it, ship it. Commercial use included, forever.

Headless by design

One series. Three products that share nothing but the engine.

Identical bars, identical indicators, identical integration code. The engine ships zero CSS classes, so the palette, the typography and every piece of chrome are yours to write.

Same bars. Same EMA and volume pane. Same <FastFinancialChart /> call. Everything else is your HTML.

Quick start

The code on the left is running on the right.

Declare series and indicators as props; push live ticks through the ref so high-frequency updates never touch React. Pick a tab to see each snippet and the chart it produces.

Read the full API docs
import { FastFinancialChart }
from '@pairlens/fast-financial-charts/react'
export function Minimal({ bars }) {
return (
<FastFinancialChart
series={[{ id: 'BTC-USD', bars }]}
timeframe="1m"
/>
)
}

Battle-tested daily

It ships inside a real trading terminal.

This isn't a demo project. It's the engine rendering live markets in the Pairlens terminal every day: streaming order flow, indicator stacks, drawings, and an AI assistant driving the chart through the same MCP tools you get.

Meet the Pairlens terminal
Pairlens desktop rendering BTC-USDT on OKX with indicators, order book and AI analysis

Fork it. Extend it. Ship it.

Everything in the repo is yours under MIT, commercial products included. If you build something with it, we'd love to see it.

Color
Surface