Jeecg System
jeecgboot/skills
JeecgBoot 系统主数据查询与管理。Use when user asks to query/create/manage system master data, or says "查询角色", "查询用户", "查询部门", "查询字典", "创建字典", "创建角色", "查岗位", "查职务", "查租户", "查数据源", "查定时任务", "系统主数据", "query…
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.
$ npx skills add marketcalls/openalgo-charts --skill openalgo-chart-indicator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install marketcalls/openalgo-charts openalgo-chart-indicator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-indicator .claude/skills/openalgo-chart-indicator && rm -rf skills-srcUse ~/.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/
Install the "openalgo-chart-indicator" agent skill from https://github.com/marketcalls/openalgo-charts/tree/master/.github/skills/openalgo-chart-indicator into .claude/skills/openalgo-chart-indicator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openalgo-chart-indicator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/marketcalls/openalgo-charts/tree/master/.github/skills/openalgo-chart-indicatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add marketcalls/openalgo-charts --skill openalgo-chart-indicator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install marketcalls/openalgo-charts openalgo-chart-indicator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/marketcalls/openalgo-charts.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/openalgo-chart-indicator .agents/skills/openalgo-chart-indicator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "openalgo-chart-indicator" agent skill from https://github.com/marketcalls/openalgo-charts/tree/master/.github/skills/openalgo-chart-indicator into .agents/skills/openalgo-chart-indicator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openalgo-chart-indicator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add marketcalls/openalgo-charts --skill openalgo-chart-indicator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install marketcalls/openalgo-charts openalgo-chart-indicator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/marketcalls/openalgo-charts.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/openalgo-chart-indicator .cursor/skills/openalgo-chart-indicator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "openalgo-chart-indicator" agent skill from https://github.com/marketcalls/openalgo-charts/tree/master/.github/skills/openalgo-chart-indicator into .cursor/skills/openalgo-chart-indicator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openalgo-chart-indicator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/marketcalls/openalgo-charts.git --path .github/skills/openalgo-chart-indicator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add marketcalls/openalgo-charts --skill openalgo-chart-indicator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install marketcalls/openalgo-charts openalgo-chart-indicator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/marketcalls/openalgo-charts.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/openalgo-chart-indicator .gemini/skills/openalgo-chart-indicator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "openalgo-chart-indicator" agent skill from https://github.com/marketcalls/openalgo-charts/tree/master/.github/skills/openalgo-chart-indicator into .gemini/skills/openalgo-chart-indicator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openalgo-chart-indicator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install marketcalls/openalgo-charts openalgo-chart-indicatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add marketcalls/openalgo-charts --skill openalgo-chart-indicator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/marketcalls/openalgo-charts.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/openalgo-chart-indicator .github/skills/openalgo-chart-indicator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "openalgo-chart-indicator" agent skill from https://github.com/marketcalls/openalgo-charts/tree/master/.github/skills/openalgo-chart-indicator into .github/skills/openalgo-chart-indicator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openalgo-chart-indicator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add marketcalls/openalgo-charts --skill openalgo-chart-indicator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install marketcalls/openalgo-charts openalgo-chart-indicator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/marketcalls/openalgo-charts.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/openalgo-chart-indicator .opencode/skills/openalgo-chart-indicator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "openalgo-chart-indicator" agent skill from https://github.com/marketcalls/openalgo-charts/tree/master/.github/skills/openalgo-chart-indicator into .opencode/skills/openalgo-chart-indicator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openalgo-chart-indicator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
openalgo-chart-indicatorAdd 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.
Openalgo Chart Indicator is an agent skill from 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. Use when the user asks to add RSI/MACD/Bollinger/Supertrend or any indicator, change indicator colors or periods, or write their own indicator.
Its SKILL.md is about 3.4k 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 Data & Analytics, covering Data governance. 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.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 8b4cffe. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditBashGlobGrepFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodergnpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Openalgo Chart Indicator loads about 3.4k tokens when it runs. Until then it costs about 88 tokens; SKILL.md has 1,687 words of instructions outside code blocks.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, Bash, Glob, GrepAutomated 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.
The full file from marketcalls/openalgo-charts at commit 8b4cffe, republished under its Apache-2.0 licence (© marketcalls). 1,687 words, ~3,420 tokens.
.claude/skills/openalgo-chart-indicator/SKILL.md (or your agent's skills folder).Add or author an indicator. Read indicators for the full built-in catalogue with exact ids, inputs and defaults before writing code - do not guess an id. There are 112 built-ins and the ids are hyphenated lowercase, not derivable from the display name (williams-percent-r, not willr).
$0 = indicator id, or a plain-language name to resolve to an id.$1 = target pane. Default: whatever the descriptor's placement says.import 'openalgo-charts/indicators'; // side effect: registers the 112 built-insWithout it chart.addIndicator throws. Add this import once, at the app entry, not in every module. Verify it is present before adding an indicator:
rg -n "openalgo-charts/indicators" src appIf loading custom indicator modules asynchronously, await registration before adding ids or restoring layouts. Concurrent panes and pickers must share the pending promise, not a premature ready flag. The package does not load arbitrary user scripts; see host-integration.
chart.addIndicator('bollinger'); // overlays the price pane
const macd = chart.addIndicator('macd', { fastPeriod: 8 }); // gets its own paneResolve the id against the source, not from memory. The catalogue is one array, so read it rather than grepping descriptor files:
node --input-type=module -e "import * as i from 'openalgo-charts/indicators'; for (const d of i.BUILTIN_INDICATORS) console.log(d.id, '|', d.name, '|', d.category, '|', d.placement)"
# upstream checkout: the tier bundle resolves as a relative path
node --input-type=module -e "import * as i from './dist/openalgo-charts.indicators.mjs'; for (const d of i.BUILTIN_INDICATORS) console.log(d.id, '|', d.name, '|', d.inputs.map(x => x.key + '=' + x.default).join(' '))"At runtime, hasIndicator(id) is the guard and registeredIndicators() the live list. If the user names an indicator that has no built-in descriptor, say so plainly and go to Path C rather than substituting a different indicator.
Every plot gets colour, opacity, thickness, line style and plot style for free, generated from the descriptor. The keys are <plotKey>:opacity, :width, :lineStyle, :type.
Colour is the exception. The colour key is plot.colorKey when the descriptor declares one, and <plotKey>:color only when it does not. Every built-in declares one, so 'macd:color' is silently ignored while 'macdColor' works. Resolve the real key with plotStyleKeys(plot) rather than composing it by hand.
28 built-ins also declare fills (shaded channels, and background overbought/oversold bands). A fill is restyled through its colorUpKey / colorDownKey settings keys, not through any plot key.
macd.setSettings({ 'macd:width': 2, 'macd:lineStyle': 'dashed', macdColor: '#26a69a' });To build a settings dialog, generate it from the descriptor rather than hand-writing a form. The descriptor's own inputs are the parameters tab; indicatorStyleInputs(descriptor) gives the style tab. The chart emits indicatorSettings when the user clicks the gear on a pane legend - that event is the hook to open your dialog. The library ships no dialog.
Use registerIndicator when the value is computed from the chart's own OHLCV. A descriptor is data: id, name, placement, inputs, plots, optional levels, and a pure calc. Each plot names a registered chart type, so you write no drawing code.
Since 1.7.1 a descriptor can also return free-standing geometry from draws(ctx) (lines, boxes, labels and polylines anchored to { time, price }, with ray extension and multi-line text), derive its levels from ctx.bars / ctx.values rather than settings alone, and send a single plot to the price pane with overlay: true while the rest of the study keeps its own pane. colorBy now reaches line, area and step, not just histogram and column. The ./calc helpers are all exported, including pivotHigh, pivotLow and smaSeededEma, so a ported study composes them instead of re-deriving them.
Since 1.8.1, and the reason to reach past a plot before hand-rolling something:
calc takes an optional fourth argument, IndicatorCalcContext: barState (isNew, isConfirmed, isRealtime, lastIndex), plus symbol, interval, timezone and now(). calcTail takes it sixth. Optional and trailing, so an existing descriptor is untouched. isConfirmed is inferred from the last bar's gap against the chart clock, so a holiday or a session break widens it: it means "this bar's span has elapsed", not "the exchange is closed".alerts declares conditions the runtime watches, emitted as 'indicator:alert' on the chart bus. They fire only on a live tail change, so adding the indicator to a loaded chart, changing a setting, paging history or switching symbol announces nothing.background(ctx) shades the indicator's own pane per bar (pass a translucent rgba(), it draws over the grid); barColors(ctx) recolours the main price candles, one publisher at a time, last writer wins.plot.ohlc names four calc columns so one plot draws as candles or OHLC bars.withAlpha / fromGradient from the package root, for any per-bar colour rule. Do not write a hex parser.intervalParts and isIntradayInterval / isDailyInterval / isSecondsInterval / isTickInterval answer what kind of bar the chart is on. Never branch by matching the interval string.parseSessionSpec / inSessionAt / sessionFlags for a window you state ('0915-1015', '0930-1600:23456'), as opposed to sessionStartFlags, which reads the trading day back out of the bar gaps.Since 2.4.0, for the constructs a ported study most often could not express (every one optional, nothing older changes):
securitySeries(bars, interval, opts) from openalgo-charts/indicators folds the chart's bars to a higher timeframe, one value per bar. The default reads the bucket as it stood at that bar and never repaints; offset: k reads the last completed bucket; lookahead: true reads final values and repaints. session: '0915-1530' anchors sub-day buckets to the session open. This replaces every hand-rolled fold.plot.offset paints a column that many bars to the right, the tail landing in the right margin (a displaced cloud). Fills follow the first plot's offset; the legend reads what is drawn under the cursor. SeriesStyle.barOffset is the same thing on any series.calc no longer takes the frame down: it is published as { state: 'error' } on the instance data status and indicator:data-status, the previous plots stay up, and the next good pass publishes ready. Throw IndicatorInputError for a condition the user can fix. addIndicator still refuses a descriptor whose first pass throws.alerts[].message may be a function of the firing bar's context.cross and xcross; positions paneTop and paneBottom, pinned to the plot edge with no bar or price needed.fills[].overlay puts a band on the price pane beside overlay plots.plot.colorParts returns { body, wick, border } per bar, carried as Bar.wickColor / Bar.borderColor and honoured by both candle renderers; colorBy is unchanged.draws() labels and boxes take tooltip and id: hit-testable, reported through subscribeClick, tooltip painted on hover by the layer itself.interval and time: a timeframe code (select over the built-in tokens plus registered codes) and a wall-clock string in the chart zone.table options fontSize: 'auto' fits each cell.ctx.requestBars(request) on the attach context asks the host for another instrument's bars; the host registers a provider with chart.setBarsProvider (or ChartOptions.barsProvider) and it rejects with a clear message when there is none. See Path D for the Tier-2 half.Full semantics for all of these are in indicators.
From 2.5.6, an input that only matters for some settings takes visibleWhen or
activeWhen, a condition over the other settings such as
{ key: 'mode', is: 'bands' } (also isNot, all, any), and related inputs
share one row with the same inline id. The widget and reference host forms honour
them; calc still receives every setting. A ported study whose inputs were greyed
or hidden by another input keeps that behaviour this way instead of listing every
parameter as always editable. See
indicators.
Full semantics for every one of these, including the firing rules and the known gaps, are in indicators. Read them before using barColors or alerts: both have behaviour that is deliberate and surprising.
import { registerIndicator, sourceValues } from 'openalgo-charts';
registerIndicator({
id: 'my-ma',
name: 'My MA',
placement: 'onchart',
inputs: [{ key: 'length', type: 'number', label: 'Length', default: 20 }],
plots: [{ key: 'ma', title: 'MA', type: 'line', style: { lineWidth: 1.5 } }],
calc(bars, settings) { /* return { ma: (number | null)[] } aligned to bars */ },
});Confirm the exact IndicatorDescriptor field names and the calc return shape against dist/index.d.ts before writing - the reference file documents them, but the typings are authoritative.
Two optional hooks are worth knowing before you reach for a plot that cannot express the idea:
markers(ctx) returns bar-anchored SeriesMarker[] and runs after every calc, so it reads the values calc just produced. Use it for discrete named events (a crossover arrow, a "Buy" plate) rather than trying to encode them as a price column. The labelUp / labelDown shapes are text plates whose tail points at the anchor price; both require text. Return [] to clear the layer. halftrend, williams-fractals and rsi-divergence are the built-in examples.fills shades a band, and between resolves against calc output columns rather than declared plots. A background band is therefore a fill between two constant columns that are never plotted.registerIndicator overwrites an existing id. With 112 built-ins registered, namespace a custom id (my-momentum, acme-vwap) unless replacing a built-in is the intent.
If the indicator anchors on a calendar (a session, week or month reset), it needs the chart's zone. calc is handed (bars, settings, store) and never the chart, so the chart injects its timezone into the settings blob under a reserved timezone key. Read it defensively (missing or unrecognised means DEFAULT_TIMEZONE, never a throw), do not write it back into your own settings, and prefer sessionStartFlags(times) over any calendar rule when what you actually mean is "the trading session". The recipe is in indicators.
Open interest, cumulative volume delta, PCR, any external analytics feed. Use createTier2Indicator, which wraps a fetch/subscribe lifecycle into an ordinary descriptor so panes, settings, levels and removal all work identically.
import { createTier2Indicator } from 'openalgo-charts/indicators';The alignment rule matters and is not negotiable: each bar takes the most recent external point at or before that bar's time. Never interpolated, never forward-looking. Bars before the first point are null.
Since 2.4.0 a Tier-2 descriptor can also combine: series names external columns to align besides the plots, calc(bars, external, settings, store, ctx) folds them into the chart's own bars, and Tier2Context.requestBars carries the host's bar provider into fetch. A relative strength or a beta against a benchmark is therefore one descriptor, with no transport of its own. Without calc the wrapper returns the aligned plot columns exactly as before.
paneIndex when the user explicitly wants it elsewhere.calc runs on every data change. Keep it O(n) and allocation-light; do not fetch inside it.npx tsc --noEmitThen confirm on a live chart that the plot appears in the expected pane, the legend shows a reading, and changing a setting repaints. Report the id used, the pane it landed in, and the settings keys you exposed.
© 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
Just SKILL.md in .github/skills/openalgo-chart-indicator of marketcalls/openalgo-charts.
Open the folder on GitHubat commit 8b4cffe
Openalgo Chart Indicator 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Openalgo Chart Indicator this skillmarketcalls/openalgo-charts | 146 | — | ~3.4k | Automated safety check: Notes | Apache-2.0 | |
| Jeecg Systemjeecgboot/skills | 239 | — | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| Data Quality Frameworkswshobson/agents | 40k | 11 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Research Data Feasibility and Leakage ChecksLight0305/Light-skills | 640 | — | ~4.9k | Automated safety check: Pass | MIT | |
| Annotating Task Lineageastronomer/agents | 451 | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Data Catalog Entrynimrodfisher/data-analytics-skills | 470 | — | ~616 | Automated safety check: Pass | MIT |
jeecgboot/skills
JeecgBoot 系统主数据查询与管理。Use when user asks to query/create/manage system master data, or says "查询角色", "查询用户", "查询部门", "查询字典", "创建字典", "创建角色", "查岗位", "查职务", "查租户", "查数据源", "查定时任务", "系统主数据", "query…
wshobson/agents
Sets up data quality checks with Great Expectations, dbt tests and data contracts, with checkpoints and pass-fail reports for pipelines.
Light0305/Light-skills
Finds usable public datasets, judges whether the data can support a research idea, and checks train and test splits for leakage before results are trusted.
astronomer/agents
Annotate Airflow tasks with data lineage using inlets and outlets.
nimrodfisher/data-analytics-skills
Create standardized metadata for data assets. An agent skill from nimrodfisher/data-analytics-skills.
affaan-m/ECC
Production machine-learning engineering workflow for data contracts, reproducible training, model evaluation, deployment, monitoring, and rollback.
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…
marketcalls/openalgo-charts
Extend openalgo-charts with a custom primitive, drawing tool, chart type, or indicator descriptor.
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…
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…
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…
Categories
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. Openalgo Chart Indicator is an agent skill from 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.
Openalgo Chart Indicator fits situations like: the user asks to add RSI/MACD/Bollinger/Supertrend; change indicator colors; write their own indicator.
Run `npx skills add marketcalls/openalgo-charts --skill openalgo-chart-indicator -a claude-code`. Or copy the skill folder (.github/skills/openalgo-chart-indicator in marketcalls/openalgo-charts) into .claude/skills/openalgo-chart-indicator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add marketcalls/openalgo-charts --skill openalgo-chart-indicator -a codex`. Or copy the skill folder (.github/skills/openalgo-chart-indicator in marketcalls/openalgo-charts) into .agents/skills/openalgo-chart-indicator in your project. Codex loads it when a task matches its description.
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-indicator -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-indicator, .gemini/skills/openalgo-chart-indicator, .github/skills/openalgo-chart-indicator and .opencode/skills/openalgo-chart-indicator in your project.
Going by SKILL.md and its folder, Openalgo Chart Indicator needs the command-line tools its instructions call (node, rg and npx). Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, Glob, Grep.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Openalgo Chart Indicator 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.
About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Openalgo Chart Indicator: Jeecg System (jeecgboot/skills, 239 stars), Data Quality Frameworks (wshobson/agents, 40k stars), Research Data Feasibility and Leakage Checks (Light0305/Light-skills, 640 stars) and Annotating Task Lineage (astronomer/agents, 451 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.