
charting
Generate TradingView-style candlestick charts with indicators. Use when the user wants a visual chart, price visualization, or technical analysis plot.
- Installs
- 4.4K
- Last 24h
- —
- Trending rank
- —
- Security
- Fail
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/starchild-ai-agent/official-skills --skill charting- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads charting automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
Security audits
Independent scans of the skill's instructions and bundled files.
SKILL.md
The instructions your agent reads when the skill is triggered.
Charting
⚠️ CRITICAL: DO NOT CALL DATA TOOLS
NEVER call price_chart, get_coin_ohlc_range_by_id, twelvedata_time_series, or ANY market data tools when creating charts. Chart scripts fetch data internally. Calling these tools floods your context with 78KB+ of unnecessary data.
Workflow (4 steps):
- Read template from
skills/charting/scripts/ - Write script to
scripts/ - Run script with
bash - Call
read_fileon the output PNG, then display it using markdown image syntax:
You generate TradingView-quality candlestick charts. Dark theme, clean layout, professional colors. Every chart is a standalone Python script — no internal imports.
Additional Rules:
- Chart scripts run in workspace and cannot import from
core. Userequestslibrary directly, NOTproxied_get(). - Templates include proxy auto-configuration. If
PROXY_HOSTenv var exists, scripts automatically configureHTTP_PROXY/HTTPS_PROXY.
Tools: write_file, bash, read_file
When to Use Which Chart
Simple price action → Candlestick with no indicators. Good for "show me BTC this month." Trend analysis → Add EMA/SMA overlays. Good for "is ETH in an uptrend?" Momentum check → Add RSI or MACD as subplots. Good for "is SOL overbought?" Full technical view → Candles + Bollinger Bands + RSI + MACD. Good for "give me the full picture on BTC." Volume analysis → Requires separate fetch from market_chart endpoint (OHLC endpoint has no volume). Asset comparison → Line chart comparing two assets (BTC vs Gold, ETH vs S&P500, etc.). Use comparison template for normalized or percentage-based comparisons.
How to Build Charts
Read and customize the template scripts in skills/charting/scripts/:
chart_template.py— Baseline candlestick chart with TradingView styling (crypto via CoinGecko)chart_with_indicators.py— RSI, MACD, Bollinger Bands, EMA/SMA examples (crypto via CoinGecko)chart_stock_template.py— Stock/forex chart using Twelve Data APIchart_comparison_template.py— Compare two assets (crypto vs commodity, stock vs crypto, etc.)
Copy the relevant template to scripts/, customize the config section (coin, days, indicators), and run it.
The templates handle all data fetching internally with retry logic and error handling.
Note: These templates are for market data visualization (price charts, indicators). For backtest result charts (equity curves, drawdowns, performance dashboards), add matplotlib charting directly to your backtest script — the data is already there, no need to re-fetch or create a separate file.
TradingView Color Palette
| Element | Color | Hex |
|---|---|---|
| Up candles | Teal | #26a69a |
| Down candles | Red | #ef5350 |
| Background | Dark | #131722 |
| Grid | Subtle dotted | #1e222d |
| Text / axes | Light gray | #d1d4dc |
| MA lines | Blue / Orange | #2196f3 / #ff9800 |
| RSI line | Purple | #b39ddb |
| MACD line | Blue | #2196f3 |
| Signal line | Orange | #ff9800 |
Do not deviate from this palette unless the user asks.
Data Source APIs
CoinGecko (Crypto Only)
Endpoint: https://pro-api.coingecko.com/api/v3/coins/{coin_id}/ohlc/range
Auth: Header x-cg-pro-api-key: {COINGECKO_API_KEY}
Use for: BTC, ETH, SOL, and all cryptocurrencies
Example:
url = f"https://pro-api.coingecko.com/api/v3/coins/{COIN_ID}/ohlc/range"
params = {"vs_currency": "usd", "from": from_ts, "to": now, "interval": "daily"}
headers = {"x-cg-pro-api-key": os.getenv("COINGECKO_API_KEY")}
resp = requests.get(url, params=params, headers=headers)
raw = resp.json() # [[timestamp_ms, open, high, low, close], ...]
Twelve Data (Stocks, Forex, Commodities)
Endpoint: https://api.twelvedata.com/time_series
Auth: Query param apikey={TWELVEDATA_API_KEY}
Use for: Stocks (AAPL, MSFT), Forex (EUR/USD), Commodities (XAU/USD for gold)
Common Symbols:
- Stocks:
AAPL,MSFT,GOOGL,TSLA,SPY - Forex:
EUR/USD,GBP/JPY,USD/CHF - Commodities:
XAU/USD(gold),XAG/USD(silver),CL/USD(crude oil)
Intervals: 1min, 5min, 15min, 30min, 1h, 4h, 1day, 1week, 1month
Example:
url = "https://api.twelvedata.com/time_series"
params = {
"symbol": "XAU/USD", # Gold spot price
"interval": "1day",
"outputsize": 90, # Number of candles
"apikey": os.getenv("TWELVEDATA_API_KEY")
}
resp = requests.get(url, params=params)
data = resp.json()
# data["values"] = [{"datetime": "2024-01-01", "open": "2050.00", "high": "2060.00", ...}, ...]
IMPORTANT: Twelve Data returns data in reverse chronological order (newest first). Always reverse the list before creating a DataFrame:
values = data["values"][::-1] # Reverse to oldest-first
Interval Selection Strategy
The templates now auto-select optimal intervals to minimize data volume while maintaining visual quality:
| Time Range | Auto-Selected Interval | Rationale |
|---|---|---|
| ≤31 days | Hourly | High granularity for short-term analysis |
| 32-365 days | Daily | Sufficient detail, lower data volume |
| >365 days | Daily | Daily is optimal for long-term trends |
Override: Set INTERVAL = "daily" or INTERVAL = "hourly" in the config to override auto-selection.
Key Gotchas
savefigfacecolor: You MUST setfacecolor='#131722'andedgecolor='#131722'insavefig, or the saved PNG reverts to white background.- Title spacing: Prefix titles with
\nto add spacing from the top edge. returnfig=True: Use when you need post-plot customization (price formatting, annotations). When using it, callfig.savefig()manually — don't passsavefigtompf.plot().- No volume in OHLC: CoinGecko OHLC endpoint returns
[timestamp_ms, open, high, low, close]only. Usevolume=Falseor fetch volume separately fromcoin_chartendpoint. - Panel ratios: Set
panel_ratioswhen adding indicator subplots. E.g.,(4, 1, 2)for candles + volume + one indicator,(5, 1, 2, 2)for two indicators. - Figure size: Default
(14, 8). Increase to(14, 10)or(14, 12)when adding subplots.
Rules
- Paths are relative to workspace. Write to
scripts/foo.py, notworkspace/scripts/foo.py. The bash CWD is already workspace. - Always save to
output/directory. Useos.makedirs("output", exist_ok=True). - Always run the script with
bash("python3 scripts/<name>.py")to verify it works. - Always call
read_fileon the generated PNG, then use markdown image syntax to display it: - Scripts must be standalone. Use
requests+os.getenv(). No internal imports, no dotenv. - CRITICAL: Do NOT use proxied_get() in chart scripts. Chart scripts are standalone and run in the workspace - they cannot import from
core.http_client. Always userequests.get()andrequests.post()directly. This is an exception to the PLATFORM.md proxy rules because these scripts execute outside the main Star Child process. The templates demonstrate the correct pattern. - Env vars are inherited.
os.getenv("COINGECKO_API_KEY")works directly. - Default to dark theme unless user asks for light.
- Filename should describe the chart. e.g.
btc_30d_candles.png,eth_7d_rsi_macd.png. - Data sources: Use CoinGecko API for crypto (BTC, ETH, etc). Use Twelve Data API for stocks, forex, and commodities (AAPL, EUR/USD, XAU/USD for gold). Never mix APIs - keep scripts focused on one data source.
- Think about what you're measuring: Before creating a chart, ask yourself: "What question is the user trying to answer?" A normalized chart (all start at 100) shows relative trends but hides actual gain magnitude. If the user wants to know "which gained more" or is comparing investment performance, they need the actual multipliers (e.g., 50x vs 10x), not just lines that look similar.
Troubleshooting
401 Unauthorized Errors
Templates auto-configure proxy from PROXY_HOST/PROXY_PORT env vars. If 401 errors occur:
Check environment:
bash("env | grep -E 'PROXY|REQUESTS_CA'")
Expected vars:
PROXY_HOST/PROXY_PORT- Proxy address (templates use these to set HTTP_PROXY/HTTPS_PROXY)REQUESTS_CA_BUNDLE- Proxy CA cert for SSLCOINGECKO_API_KEY/TWELVEDATA_API_KEY- Can be fake in proxied environments
If vars are missing, this is an environment configuration issue, not a script issue.
FAQ
What does the charting skill do?
Generate TradingView-style candlestick charts with indicators. Use when the user wants a visual chart, price visualization, or technical analysis plot.
How do I install charting?
Run npx skills add https://github.com/starchild-ai-agent/official-skills --skill charting in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/charting/ (personal) or .claude/skills/charting/ (project).
Which AI agents can use charting?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is charting safe to install?
Security partners have reviewed it: Gen Agent Trust Hub flagged items to review; Socket passed; Snyk flagged risks; Runlayer flagged risks; ZeroLeaks passed. As with any skill, read the SKILL.md and bundled scripts before installing.
Who maintains charting?
It is published by starchild-ai-agent in starchild-ai-agent/official-skills. It has 4,421 recorded installs.
More from starchild-ai-agent/official-skills
coinglass
starchild-ai-agent/official-skills
Crypto derivatives data: funding rates, open interest, liquidations, long/short ratios. Use when researching perp markets or comparing ETF flows (e.g. BTC funding, ETH OI). NOTE: platform API key is Startup tier — liquidation heatmap, coins-markets detail, liquidation order book and Hyperliquid positions require higher plans (see Plan Tiers).
wallet
starchild-ai-agent/official-skills
Multi-chain wallet: EVM and Solana balances, transfers, signing, and policy. Use when checking balances, sending tokens, signing typed data, or proposing a wallet policy (e.g. send 10 USDC on Base, sign EIP-712, Solana balance).
hyperliquid
starchild-ai-agent/official-skills
Trade perp futures, spot, and RWA on Hyperliquid DEX with up to asset max leverage. Use when placing perp or spot orders, setting TP/SL, or moving funds on Hyperliquid (e.g. long BTC 5x, sell ETH, deposit USDC, set stop).
coingecko
starchild-ai-agent/official-skills
Crypto spot prices, OHLC charts, market discovery, and global stats. Use when looking up coin prices, market caps, trending coins, sector rankings, or comparing tokens (e.g. BTC price, ETH chart, top gainers).
starchild-ai-agent/official-skills
Twitter/X data: fetch tweets, search, user profiles, followers, replies, trends. Use for any x.com or twitter.com URL or lookup (e.g. summarize this tweet, recent posts by @vitalikbuterin, search $SOL minfaves:50).
skill-creator
starchild-ai-agent/official-skills
Scaffold new skills with valid frontmatter, directory layout, and a starter SKILL.md. Use when building a new reusable workflow or wrapping a new API (e.g. create a kalshi skill, scaffold an API helper, start a charting skill).
Popular ai & agents skills
google-agents-cli-publish
google/agents-cli
This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).
google-agents-cli-eval
google/agents-cli
This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).
skill-creator
anthropics/skills
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
codex-pet
prime-skills/runcomfy-agent-skills
Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.
full-output-enforcement
leonxlnx/taste-skill
Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.
executing-plans
obra/superpowers
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available