Skip to content
Projects

bonguynvan/tradecanvas has 33 GitHub stars and 4 forks. GitHot measured 0 stars in 24 hours and +2 in 7 days. Last checked 2026-11-10 00:19 UTC. Last push 2026-11-04.

How these counts are measured

Trading charts for the web, drawn with Canvas 2D or WebGL: 134 indicators, 69 drawing tools, 18 chart types, live exchange feeds, orders on the chart, replay and backtesting, touch-ready on phones. Zero dependencies. TypeScript, React, Vue, Svelte.

What you can do

  • 18 chart types, 134 indicators, 73 drawing tools, indicators on indicators, alerts on lines, undo and redo.
  • Trading on the chart: positions with live P&L, orders and stops you drag, a paper broker or your own.
  • Live data from Binance, Bybit, Coinbase, Kraken and Upbit, or your own feed in about twenty lines.
  • Fast: a million bars panned at 60 fps with WebGL; a live tick in about a microsecond; ten minutes of 30,000 trades a second on a million bars with no memory growth (soak).

Measured star growth

in 24h
0
in 7 days
+2
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

TradeCanvas, the chart engine for trading apps

npm version npm downloads CI status pkg.pr.new previews No third-party dependencies TypeScript MIT license GitHub stars GitHub Sponsors

Live demo · Docs · Examples · System audit · Changelog

English · Tiếng Việt · 简体中文 · 日本語 · 한국어 · Español

A complete trading chart for the web. Candlesticks to Renko, 134 indicators, 73 drawing tools, live feeds and orders on the chart, on Canvas 2D or WebGL, with no third-party dependencies. Use the full ChartWidget, or build your own interface on the headless Chart, in TypeScript, React, Vue or Svelte.

ChartWidget on a live market: EMA 21 and 55 and RSI, the crosshair, and a trend line drawn with the mouse

Highlights

  • 18 chart types, 134 indicators, 73 drawing tools, indicators on indicators, alerts on lines, undo and redo.
  • Trading on the chart: positions with live P&L, orders and stops you drag, a paper broker or your own.
  • Live data from Binance, Bybit, Coinbase, Kraken and Upbit, or your own feed in about twenty lines.
  • Fast: a million bars panned at 60 fps with WebGL; a live tick in about a microsecond; ten minutes of 30,000 trades a second on a million bars with no memory growth (soak).
  • A workspace: grids of charts, layouts, bar replay, backtesting.
  • Yours to shape: themes, five looks, 133 switches, plugins; 30 languages; phones and apps.
Dragging the take-profit and stop-loss of a long position; its P&L updates as the price moves
Orders you drag: stops, targets and limits move with the mouse.
Bar replay playing a market back with Bollinger Bands
Bar replay: play a market back, then trade it on paper.
Four charts in a two-by-two grid on different intervals, the crosshair following across all of them
Grids: up to six charts, linked by symbol, interval, crosshair or time.
One chart switching between the Print, Terminal, Capsule and Studio looks, dark and light
Your look: Print (paper and ink, kept to the golden ratio), Studio, Terminal, Capsule, Desk (a desktop trading window), light or dark, or your own tokens.
The widget on a phone: a finger pans the chart and draws a trend line
On phones: a finger pans, zooms, draws and drags orders, and the widget lays itself out for a small screen. It also runs in a WebView, React Native, Capacitor or Tauri.

Quick start

npm install @tradecanvas/chart
import { ChartWidget } from '@tradecanvas/chart/widget'
import { BinanceAdapter } from '@tradecanvas/chart'

new ChartWidget(document.getElementById('chart')!, {
  symbol: 'BTCUSDT',
  timeframe: '5m',
  theme: 'dark',
  adapter: new BinanceAdapter(), // live data, no API key
  trading: true,
})

The headless Chart takes your own bars (chart.setData(bars)) and leaves the interface to you. A source of your own is a DataFeed of two methods (getBars, subscribeBars), given as feed wherever an adapter goes; one feed serves any number of charts. For React, Vue and Svelte, @tradecanvas/react, /vue and /svelte wrap it in a component with the same props.

Documentation

Getting started · API · Indicators · Drawing tools · Realtime · Trading · Styling · Frameworks · Plugins · Phones and apps · Performance

The docs are in English, Tiếng Việt, 简体中文, 日本語, 한국어 and Español. Measurements, limits and how it is tested are on the system audit.

AI coding tools

The agent skill in skills/tradecanvas teaches coding agents the API, with examples that CI type-checks. In Claude Code:

/plugin marketplace add bonguynvan/tradecanvas
/plugin install tradecanvas@tradecanvas

Other agents (Cursor, Codex, Copilot and more): npx skills add bonguynvan/tradecanvas. Without a skill, llms.txt and llms-full.txt give an assistant the docs in one file. Changing TradeCanvas itself with an agent? AGENTS.md holds the repo's rules.

The MCP server @tradecanvas/mcp looks up indicators, drawing tools, options, feature switches and style keys in the library's own catalog, and checks an options object before it is used (set it up in other clients):

claude mcp add tradecanvas -- npx -y @tradecanvas/mcp

On Windows outside WSL: claude mcp add tradecanvas -- cmd /c npx -y @tradecanvas/mcp. In Git Bash, which runs the ! commands of Claude Code on Windows, write //c: Git Bash turns /c into a path.

More

MIT

Explore related projects