Agent skill

Openalgo Chart Terminal

by marketcalls in marketcalls/openalgo-charts

Build a full trading terminal on openalgo-charts - symbol search, interval switcher, chart-type picker, indicator menu, drawing rail with clipboard, live OpenAlgo REST plus WebSocket data behind a…

Apache-2.0Auto-check: notesBackend & APIs

Install Openalgo Chart Terminal

skills CLI
$ npx skills add marketcalls/openalgo-charts --skill openalgo-chart-terminal -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install marketcalls/openalgo-charts openalgo-chart-terminal --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/marketcalls/openalgo-charts.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/openalgo-chart-terminal .claude/skills/openalgo-chart-terminal && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
openalgo-chart-terminal
GitHub stars
146
Token cost
~3.8k tokens
SKILL.md length
1,884 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
Apache-2.0

At a glance

Build a full trading terminal on openalgo-charts - symbol search, interval switcher, chart-type picker, indicator menu, drawing rail with clipboard, live OpenAlgo REST plus WebSocket data behind a…

  • Works in 12 steps: Chart and data → Symbol and interval switching → History paging → …
  • The user asks for a trading terminal
  • SKILL.md covers Build order, Rules and Verify
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Openalgo Chart Terminal is an agent skill from marketcalls/openalgo-charts. Build a full trading terminal on openalgo-charts - symbol search, interval switcher, chart-type picker, indicator menu, drawing rail with clipboard, live OpenAlgo REST plus WebSocket data behind a warm-load bar cache, on-chart order lines with drag-to-modify, market depth, a settings dialog and context menu, market replay, symbol comparison, a linked split view, and layout persistence. Use when the user asks for a trading terminal, a charting workstation, on-chart trading, a linked chart grid, or to wire orders…

Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Trading and backtesting, Codebase onboarding and Realtime and WebSockets. It works with React. The repository describes itself as: Production-grade charts built for brokers, exchanges, trading platforms, and financial portals. Bring your own market data, plug it in, and deliver a complete charting experience… The licence is Apache-2.0.

When your agent uses it

  • The user asks for a trading terminal
  • A charting workstation
  • On-chart trading
  • A linked chart grid

Example prompts

  • “/openalgo-chart-terminal”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash, Glob, Grep

Workflow steps

12 steps, taken from the step headings in SKILL.md.

  1. Chart and data
  2. Symbol and interval switching
  3. History paging
  4. Chart type and transforms
  5. Indicators
  6. Drawing rail
  7. On-chart trading
  8. Market depth
  9. Layout persistence
  10. Settings dialog and context menu
  11. Replay and comparison
  12. Split view and linked charts

What it can do on your machine

Read from SKILL.md and the folder at commit 8b4cffe. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Openalgo Chart Terminal loads about 3.8k tokens when it runs. Until then it costs about 139 tokens; SKILL.md has 1,884 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~139
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Bash, Glob, Grep

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from marketcalls/openalgo-charts at commit 8b4cffe, republished under its Apache-2.0 licence (© marketcalls). 1,884 words, ~3,772 tokens.

Download SKILL.mdSave it as .claude/skills/openalgo-chart-terminal/SKILL.md (or your agent's skills folder).
name
openalgo-chart-terminal
description
Build a full trading terminal on openalgo-charts - symbol search, interval switcher, chart-type picker, indicator menu, drawing rail with clipboard, live OpenAlgo REST plus WebSocket data behind a warm-load bar cache, on-chart order lines with drag-to-modify, market depth, a settings dialog and context menu, market replay, symbol comparison, a linked split view, and layout persistence. Use when the user asks for a trading terminal, a charting workstation, on-chart trading, a linked chart grid, or to wire orders onto a chart.
allowed-tools
Read, Write, Edit, Bash, Glob, Grep
argument-hint
[feature]

Build or extend a terminal. This is the largest thing you can build with this library, so build it in the order below and get each layer working before starting the next.

Two working references exist. Read the one closer to the user's stack before writing code:

  • examples/yfinance/index.html in the openalgo-charts repo - a native-ESM terminal shell with modules under src/, no framework.
  • frontend/src/components/trading/ChartPane.tsx and frontend/src/lib/trading/terminal.ts in the OpenAlgo application repo - a production React terminal. Its central lesson: keep chart orchestration in a plain TypeScript module and let React own only the DOM shell.

For async startup, pagination, replay entry/exit and concurrent registration, read host-integration. The widget already implements its documented reconnect recovery; a custom terminal must protect every data writer, including polling and older-history responses.

For an Objects panel, use the base-tier ChartObjects inventory described in core-api. Own one model per live chart generation, route drawing actions through its existing controller, and destroy the model before replacing the chart. Register profile capabilities explicitly; order and position primitives are outside the inventory. Persist indicator visible with its settings, defaulting older layouts to true. A custom React panel should clear old rows immediately when its focused chart changes. Packaged hosts can use widget.openObjects() and the existing editors.

Build order

1. Chart and data
ts
import { createChart, darkTheme, OpenAlgoLiveDataFeed } from 'openalgo-charts';

const chart = createChart(el, { theme: darkTheme, crosshairMode: 'magnet' });
const price = chart.addSeries('candlestick');
const volume = chart.addSeries('histogram', { paneIndex: 1 });

Load history, then subscribe, seeding the builder from the last historical bar so the live candle continues its bucket instead of starting a fresh one. See feeds-and-live.

Wrap the feed in withBarCache before anything else touches it. A terminal reloads the same series constantly (symbol flicking, interval pills, a page refresh), and the wrapper turns those into warm reads. It never stores the forming bar, so what comes back is short by at most the bar the live subscription is about to send you anyway.

ts
const feed = withBarCache(new OpenAlgoLiveDataFeed(cfg), { ttlMs: 60_000 });

Two things a terminal has to do itself. Show the verdict: a status line saying "warm 1 ms" against "fetched 320 ms" is the only way anyone can tell the cache is working, and feed.stats() gives you the hits. And cap to at the newest bar that can exist when the venue is shut: a hit past the entry's coverage is only allowed while the next bar is still forming, and the cache cannot know a market is closed, so out of hours every load is cold without the cap. You already have a session table for the clock; reuse it.

2. Symbol and interval switching

Switching either one is a full data reload, not a chart rebuild. Tear down the old subscription first, then setData, then resubscribe. Do not create a second chart.

Every code on the interval pills must resolve. s/m/h/d/w are built in; anything else (monthly, quarterly, a 500-tick bar) is a registerInterval call carrying a Bucketing rule, and an unregistered code now throws UnknownIntervalError at subscribe time rather than quietly drawing minute bars. Validate with isKnownInterval when the code can come from the user, and bucket calendar codes with bucketStartOf, never with a seconds-per-month constant: a month is 28 to 31 days and a New York month is not a Mumbai month.

ts
registerInterval({ code: '1MO', bucketing: { mode: 'calendar', unit: 'month', count: 1 } });

Switch the clock with the symbol. chart.setTimezone(zoneForExchange(exchange)) takes an IANA name (default Asia/Kolkata) and moves the axis labels, the crosshair tag and every session-anchored study, so a US symbol stops restarting its VWAP in the middle of the afternoon. Hold the chosen zone in your own state if anything in the terminal rebuilds the chart, and offer it as a control: a user watching a US symbol from Mumbai may want either clock. The settings schema ships that control (time.timezone, step 10), so mirror the zone rather than building a second picker. It throws on a name the runtime does not know, so guard user input with isValidTimezone. See data-and-time.

3. History paging

chart.setHistoryLoader(fn) fires when the user pans past the left edge. Fetch older bars, series.prependData(older), then chart.historyLoadComplete(). Prepending shifts logical indices but the visible window is preserved - do not re-fit.

For a recent-bar default, use navigation.defaultVisibleBars and resetScale() after a symbol load that should adopt it. This is independent of the REST lookback. An explicit saved viewport still applies after data. Keep paging behind a request-owner guard so an old response or finally cannot alter a replacement chart or a newer request.

4. Chart type and transforms

The picker maps a label to a SeriesType. Renko, Range, Line Break and Heikin Ashi transform the bars you pass to an ordinary series; Point and Figure and Kagi need import 'openalgo-charts/transform' for their renderers. See transforms.

5. Indicators

import 'openalgo-charts/indicators', then a menu built from registeredIndicators(). The gear on a pane legend emits indicatorSettings - open your own dialog generated from the descriptor. See indicators.

6. Drawing rail
ts
import { DrawingController } from 'openalgo-charts/draw';
const draw = new DrawingController(chart, { magnet: true });
draw.setTool('trend-line');

The controller is headless. Build the rail from registeredDrawingTools() and show the chord from drawingShortcuts() beside each name. The library installs no key listener - call matchDrawingShortcut(event) from your own handler, gated on the chart having focus and no dialog being open. See drawing-tools.

Wire Ctrl+C / Ctrl+X / Ctrl+V to draw.copy(), draw.cut() and draw.paste() in the same handler, and show the chords in the drawing's right-click menu. All three are async: await the cut, because it deletes only after the clipboard write succeeds and its boolean is the difference between "gone" and "still there". A paste of foreign clipboard content resolves to an empty array rather than throwing, so treat that as nothing to paste, not as an error to report.

7. On-chart trading

Two distinct layers. Get this right or you will build the wrong one.

NeedLayer
Draw positions, working orders, brackets, fills; let the user drag themchart.trading in the base bundle
Actually place, modify and cancel with a brokerOrderEngine from openalgo-charts/trade

The loop is: push exchange state into chart.trading, the user drags a line, the chart emits a trading:* event, your handler calls the broker, the broker's response comes back as new exchange state which you push in again. The chart is never the source of truth. See trading and trade-tier.

Ship analyzer/sandbox mode first and default to it. Nothing should reach a live broker until the user explicitly arms it.

8. Market depth

DomLadder from the trade tier, fed by subscribeDepth on the feed. Levels range from 5 to 200 depending on what the broker streams.

9. Layout persistence
ts
localStorage.setItem('layout', JSON.stringify(chart.getState()));
chart.restoreState(JSON.parse(localStorage.getItem('layout')!));

One payload covers viewport, grid, panes, price scales, indicator instances, drawings and the settings block (canvas, status line, trading colours, event filters). Indicators whose tier is not loaded are skipped on restore rather than throwing, so restore after your tier imports. See events-and-state.

Show full SKILL.md (799 more words)Show less
10. Settings dialog and context menu
ts
const tabs = chartSettingsSchema(chart);                        // render these
applyChartSettings(chart, { 'canvas.grid.vertLines': false });  // patch on change
chart.on('contextmenu', (e) => { (e as ContextMenuEvent).preventDefault(); showMenu(e); });

Render the tabs from the schema rather than hardcoding controls: the inputs are the IndicatorInput union your indicator settings form already handles plus one extra kind, colorPair, and every control maps to a real option. Five tabs: Price, Readout, Axes, Appearance, Trading. See settings-and-menus.

Build the colorPair widget before anything else in the dialog. It is a bullish/bearish pair on one labelled row (switch, up swatch, down swatch), and it is what keeps a dense tab fitting without a scrollbar. Its enabled half is optional: a candle Body has no visibility flag, so that row renders with two swatches and an empty switch slot rather than a checkbox that does nothing.

The timezone is a schema control now, time.timezone on the Axes tab. Drive it through applyChartSettings like every other key and let Cancel restore it with the rest; do not add a second zone row of your own.

A menu raised on a price axis is the other half of step 10. It is a branch of the same handler, not a second listener:

ts
chart.on('contextmenu', (e) => {
  const ev = e as ContextMenuEvent;
  if (ev.target.kind !== 'price-scale') return;
  ev.preventDefault();
  renderAxisMenu(ev.point, chart.priceAxisState(ev.paneIndex, ev.target.scaleId ?? 'right'));
});

Every row it draws is readable back from priceAxisState and actionable through setPriceAxisOptions, setPriceAxisAutoFit, setPriceAxisLockRatio and movePriceAxis, so no row is drawn with a checkmark and nothing behind it. Reference levels (previous close, session high and low) belong in the same menu, driven by a PriceLevels primitive: each level's plot line and axis tag are two flags in one group, and a level whose available(kind) is false is a disabled row, not a missing one.

Hold your chrome to the UI standard in themes-and-styling: styled scrollbars on every dark surface, colour inputs as small squares, paired colours on one row, themed checkboxes and selects, tab glyphs, and no control with nothing behind it.

11. Replay and comparison
ts
const replay = new ReplayController(chart, { bars, startIndex, barMs: 500 });
addComparison(chart, { symbol: 'BANKNIFTY', bars: otherBars });

Both are headless: draw the transport bar from replay.state() plus the replay:* events, and the symbol chips from list(). Detach the live feed while replaying, and pass every series on the timeline (volume included) to the replay controller. See replay-and-compare.

12. Split view and linked charts

A second chart is the one place rule 1 does not apply: a split view is genuinely two Chart instances, each with its own symbol picker, interval pills and feed subscription, joined by a link group.

ts
const group = createLinkGroup({ crosshair: true, viewport: true, symbol: false });
group.add(chartA, { symbol: symA, onSymbol: (s, c) => load(s, c) });
group.add(chartB, { symbol: symB, onSymbol: (s, c) => load(s, c) });

Do not write your own sync. Copying one chart's getVisibleLogicalRange() onto the other is the bug this feature exists to prevent: the logical index belongs to that chart's own bars, so it is a different instant on a chart with a different interval or a different history depth. The group converts through time on both sides.

Three switches in the link menu, one per channel, plus the nearest/hide choice for an instant the follower has no bar for. Symbol sync needs a per-member onSymbol that loads bars, or the switch does nothing; a member without one is your "pin this chart" affordance rather than an omission.

Suspend viewport sync while a member loads its first dataset. Letting a fresh follower's fitContent broadcast throws the leader off the window the user was on (fitContent emits zoom/pan like a gesture does since 1.4.0), and adopting the leader's window instead can leave a month of hourly bars as a sliver. Turn it off for the load, turn it back on, and let the two converge on the first pan. See chart-linking.

Destroying a split pane is chart.destroy(): the group notices the 'destroy' event and prunes the member itself, so there is no bookkeeping to forget.

Rules

  1. One chart instance for the terminal's life. Symbol, interval, theme and chart-type changes all mutate it in place. A deliberate split view (step 12) is the exception, and its second chart is a full peer with its own feed and its own teardown.
  2. Chart orchestration belongs outside the UI framework. A plain module holding the chart, the feed and the subscriptions; the framework renders the shell and calls into it.
  3. Tear down every subscription on symbol change and on unmount. A leaked WebSocket handler will keep pushing bars into a destroyed chart.
  4. API keys never live in committed client source. Use the project's env mechanism.
  5. Analyzer mode by default.
  6. No emojis or icons in the UI, code, or logs.

Verify

Typecheck, then drive the real thing: switch symbol, switch interval, pan left until history loads, add an indicator, place a drawing, copy it and paste it, reload the page and confirm the layout came back and the second load reported warm. If you built the split view, open it on a different interval from the first chart and check that the linked crosshair lands on the bar at the same clock time, not on the same bar number. Report which of these you actually exercised and which you could not.

© marketcalls, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .github/skills/openalgo-chart-terminal of marketcalls/openalgo-charts.

Open the folder on GitHubat commit 8b4cffe

Compare with similar skills

Openalgo Chart Terminal next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Openalgo Chart Terminal compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Openalgo Chart Terminal this skillmarketcalls/openalgo-charts146—~3.8kAutomated safety check: NotesApache-2.0
Web3 PolymarketPolymarket/agent-skills1921 repos~2kAutomated safety check: PassNone
Cryptofeed2025Emma/vibe-coding-cn23k1 repos~1.6kAutomated safety check: PassMIT
Tiger Brokers C++ OpenAPI SDKqusong0627/QuantMind1.7k—~942Automated safety check: PassApache-2.0
Polymarket2025Emma/vibe-coding-cn23k1 repos~1.6kAutomated safety check: PassMIT
Dflowsendaifun/skills1301 repos~5.7kAutomated safety check: PassApache-2.0

Similar skills

  • Web3 Polymarket

    Polymarket/agent-skills

    Polymarket integration for prediction market trading on Polygon.

    192 GitHub starsUsed in 1 repo~2k tokens
    Backend & APIsAuto-check passed
  • Cryptofeed

    2025Emma/vibe-coding-cn

    Cryptofeed - Real-time cryptocurrency market data feeds from 40+ exchanges.

    23k GitHub starsUsed in 1 repo~1.6k tokens
    Backend & APIsAuto-check passed
  • Tiger Brokers C++ OpenAPI SDK

    qusong0627/QuantMind

    Guides an agent through the Tiger Brokers OpenAPI C++ SDK for build setup, market data, orders and real-time push, defaulting to paper trading.

    1.7k GitHub stars~942 tokensUpdated today
    Backend & APIsAuto-check passed
  • Polymarket

    2025Emma/vibe-coding-cn

    Comprehensive Polymarket skill covering prediction markets, API, trading, market data, and real-time WebSocket data streaming.

    23k GitHub starsUsed in 1 repo~1.6k tokens
    Backend & APIsAuto-check passed
  • Dflow

    sendaifun/skills

    Complete DFlow trading protocol SDK - the single source of truth for integrating DFlow on Solana.

    130 GitHub starsUsed in 1 repo~5.7k tokens
    Backend & APIsAuto-check passed
  • Crypto Executor

    LeoYeAI/openclaw-master-skills

    Complete autonomous trading engine for Binance with WebSocket real-time, OCO orders, Kelly Criterion position sizing, trailing stops, circuit breakers, daily performance reports, AND NOW adaptive…

    2.2k GitHub stars~4k tokensUpdated 2 mo ago
    Backend & APIsAuto-check passed

More from marketcalls/openalgo-charts

  • Openalgo Chart Debug

    marketcalls/openalgo-charts

    Diagnose an openalgo-charts problem - blank or invisible chart, bars in the wrong place, unknown series type or indicator errors, misaligned indicators, drawings that drift, a chart that will not…

    146 GitHub stars~2.1k tokensUpdated 10 days ago
    Auto-check: notes
  • Openalgo Chart Indicator

    marketcalls/openalgo-charts

    Add a built-in openalgo-charts indicator, restyle it, build a settings UI from its descriptor, or author a custom indicator with registerIndicator or the Tier-2 external-data contract.

    146 GitHub stars~3.4k tokensUpdated 10 days ago
    Auto-check: notes
  • Openalgo Chart Plugin

    marketcalls/openalgo-charts

    Extend openalgo-charts with a custom primitive, drawing tool, chart type, or indicator descriptor.

    146 GitHub stars~1.1k tokensUpdated 10 days ago
    Auto-check: notes
  • Openalgo Chart Setup

    marketcalls/openalgo-charts

    Scaffold a working openalgo-charts chart in an existing project - detects the host (React, Next.js, Vue, vanilla bundler, or plain script tag), installs the right tiers, and writes a chart that…

    146 GitHub stars~1.4k tokensUpdated 10 days ago
    Auto-check: notes
  • Openalgo Charts

    marketcalls/openalgo-charts

    A skill your agent uses when building, configuring, extending or debugging openalgo-charts in a consumer app or the source repository, including chart navigation, drawing tools, indicators…

    146 GitHub stars~7.6k tokensUpdated 10 days ago
    Auto-check passed

Works with

Questions about Openalgo Chart Terminal

What does Openalgo Chart Terminal do?

Build a full trading terminal on openalgo-charts - symbol search, interval switcher, chart-type picker, indicator menu, drawing rail with clipboard, live OpenAlgo REST plus WebSocket data behind a…. Openalgo Chart Terminal is an agent skill from marketcalls/openalgo-charts. Build a full trading terminal on openalgo-charts - symbol search, interval switcher, chart-type picker, indicator menu, drawing rail with clipboard, live OpenAlgo REST plus WebSocket data behind a warm-load bar cache, on-chart order lines with drag-to-modify, market depth, a settings dialog and context menu, market replay, symbol comparison, a linked split view, and layout persistence.

When should I use Openalgo Chart Terminal?

Openalgo Chart Terminal fits situations like: the user asks for a trading terminal; A charting workstation; on-chart trading; A linked chart grid.

How do I install Openalgo Chart Terminal in Claude Code?

Run `npx skills add marketcalls/openalgo-charts --skill openalgo-chart-terminal -a claude-code`. Or copy the skill folder (.github/skills/openalgo-chart-terminal in marketcalls/openalgo-charts) into .claude/skills/openalgo-chart-terminal in your project. Claude Code loads it when a task matches its description.

How do I install Openalgo Chart Terminal in Codex?

Run `npx skills add marketcalls/openalgo-charts --skill openalgo-chart-terminal -a codex`. Or copy the skill folder (.github/skills/openalgo-chart-terminal in marketcalls/openalgo-charts) into .agents/skills/openalgo-chart-terminal in your project. Codex loads it when a task matches its description.

Can I use Openalgo Chart Terminal in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add marketcalls/openalgo-charts --skill openalgo-chart-terminal -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/openalgo-chart-terminal, .gemini/skills/openalgo-chart-terminal, .github/skills/openalgo-chart-terminal and .opencode/skills/openalgo-chart-terminal in your project.

What does Openalgo Chart Terminal need to run?

SKILL.md names no scripts, command-line tools or credentials: Openalgo Chart Terminal is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, Glob, Grep.

Does Openalgo Chart Terminal access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Openalgo Chart Terminal safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Openalgo Chart Terminal use?

Openalgo Chart Terminal is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Openalgo Chart Terminal use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Openalgo Chart Terminal?

Skills that share tags, products or a category with Openalgo Chart Terminal: Web3 Polymarket (Polymarket/agent-skills, 192 stars), Cryptofeed (2025Emma/vibe-coding-cn, 23k stars), Tiger Brokers C++ OpenAPI SDK (qusong0627/QuantMind, 1.7k stars) and Polymarket (2025Emma/vibe-coding-cn, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Openalgo Chart Terminal?

marketcalls (a GitHub user) maintains it in marketcalls/openalgo-charts, which has 146 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 1, 2026.

Source: marketcalls/openalgo-charts on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.