← Back to Skills Marketplace
ryandeangraves

Charts

by ryandeangraves · GitHub ↗ · v1.1.0
cross-platform ⚠ suspicious
1135
Downloads
0
Stars
15
Active Installs
2
Versions
Install in OpenClaw
/install charts
Description
Generate 90-day candlestick charts with SMA 20/50, RSI, Fibonacci retracements, and pattern detection for BTC, ETH, XRP, SUI, Gold, and Silver.
README (SKILL.md)

Skill: charts

Purpose

Generate professional technical analysis charts with candlesticks, Fibonacci retracement, moving averages (SMA 20/50), RSI, and pattern detection. Uses the local crypto_charts.py module.

When to Use

  • Boss Man asks "show me the BTC chart" or "run TA on silver"
  • You need visual charts for market analysis or reporting
  • Morning protocol chart generation
  • Any request for technical analysis with visuals

Generate All Charts (Full Suite)

Generates charts for all 6 tracked assets: BTC, ETH, XRP, SUI, Gold, Silver. Warning: Takes 2-3 minutes due to API rate limits between requests.

cd ~/clawd && python3 -c "
import json
from crypto_charts import generate_all_charts, cleanup_old_charts
cleanup_old_charts()
report = generate_all_charts(output_dir=os.path.expanduser('~/clawd/charts'))
print(json.dumps(report, indent=2, default=str))
" 2>&1

Charts saved to: ~/clawd/charts/chart_btc.png, chart_eth.png, etc.

Generate Single Chart

For a quick single-asset chart without waiting for the full suite:

cd ~/clawd && python3 -c "
import os, json
from crypto_charts import (
    fetch_yfinance, fetch_ohlc, fetch_market_data,
    calc_moving_averages, calc_rsi, calc_fibonacci,
    detect_patterns, generate_chart, COINS
)

coin_id = 'COIN_ID'  # bitcoin, ethereum, ripple, sui, gold, silver
info = COINS[coin_id]

# Fetch data (Yahoo Finance first, CoinGecko fallback)
df = fetch_yfinance(coin_id)
if df is None or len(df) \x3C 10:
    df = fetch_ohlc(coin_id)
if df is None or len(df) \x3C 10:
    df = fetch_market_data(coin_id)

if df is not None and len(df) >= 5:
    df = calc_moving_averages(df)
    df = calc_rsi(df)
    fib = calc_fibonacci(df)
    patterns = detect_patterns(df)

    chart_path = os.path.expanduser(f'~/clawd/charts/chart_{info[\"symbol\"].lower()}.png')
    generate_chart(coin_id, df, fib, chart_path)

    print(f'Chart: {chart_path}')
    print(f'Price: \${df[\"close\"].iloc[-1]:,.2f}')
    print(f'RSI: {df[\"rsi\"].iloc[-1]:.1f}')
    print('Patterns:')
    for p in patterns:
        print(f'  - {p}')
else:
    print('Not enough data to generate chart')
"

Tracked Assets

coin_id Symbol Chart Color Data Source
bitcoin BTC #F7931A Yahoo Finance → CoinGecko
ethereum ETH #627EEA Yahoo Finance → CoinGecko
ripple XRP #00AAE4 Yahoo Finance → CoinGecko
sui SUI #6FBCF0 Yahoo Finance → CoinGecko
gold XAU #FFD700 Yahoo Finance
silver XAG #C0C0C0 Yahoo Finance

What the Charts Include

  • Candlestick bars (green up / red down) — 90 days of daily data
  • 20 SMA (blue) and 50 SMA (gold) — trend and support/resistance
  • Fibonacci retracement levels (0%, 23.6%, 38.2%, 50%, 61.8%, 78.6%, 100%)
  • RSI subplot (purple) — with overbought (70) and oversold (30) lines
  • Current price marker — dot + horizontal line in the asset's accent color

Pattern Detection (Automatic)

The module auto-detects and reports:

  • SMA crossovers (Golden Cross / Death Cross)
  • Head & Shoulders / Inverse H&S
  • Fibonacci zone positioning
  • Trend strength (7-day momentum)
  • RSI condition (overbought/oversold/neutral)
  • Price position within 90-day range

Sending Charts via Telegram

After generating, send the chart image using Clawdbot's native message command:

message (Telegram, target="7887978276") [attach ~/clawd/charts/chart_btc.png]

Rules

  • Charts use 90 days of history — enough for meaningful TA
  • Yahoo Finance is tried first (free, reliable), CoinGecko is fallback
  • Rate limit: 8-second delays between coins, 20-second batch cooldowns
  • Always run cleanup_old_charts() first to avoid disk buildup
  • Chart images are ~150 DPI, dark theme (#0f172a background)
Usage Guidance
Do not run the provided Python commands or the 'message' snippet until you verify what will actually execute. Specific actions to take before installing or using: 1) Confirm whether you already have a trusted crypto_charts.py in ~/clawd; if not, treat the skill as incomplete — ask the publisher for the missing code or a proper install package. 2) Audit the crypto_charts.py source (if provided) for network calls, hidden endpoints, or code that reads unrelated files. 3) Remove or change the hard-coded Telegram target ("7887978276") — it will send generated charts to that recipient if executed. 4) Run the scripts in an isolated environment first (sandbox/container) and monitor network traffic and outgoing messages. 5) If you need messaging, verify that your platform's messaging action uses your account and explicit consent; do not rely on undocumented recipient targets. These inconsistencies likely indicate sloppy packaging or risk of unintended data exfiltration; verify code provenance before proceeding.
Capability Analysis
Type: OpenClaw Skill Name: charts Version: 1.1.0 The skill's `SKILL.md` contains Python code executed via `python3 -c` that includes a placeholder `coin_id = 'COIN_ID'`. This design introduces a critical Python code injection vulnerability. If an AI agent directly substitutes unsanitized user input into this `coin_id` variable, it could lead to arbitrary code execution (RCE) on the host system. While the skill's stated purpose is benign (generating charts) and there's no evidence of intentional malicious exploitation by the skill itself, this significant input sanitization flaw makes it suspicious.
Capability Assessment
Purpose & Capability
The skill promises to 'use the local crypto_charts.py module' and exposes many functions (generate_all_charts, fetch_yfinance, etc.), but the published bundle contains no code files — only SKILL.md and metadata. A consumer installing this skill would not get the required module, so the instructions cannot be executed as-is. That mismatch suggests either missing code (sloppy packaging) or reliance on an external, implicit file not provided by the skill.
Instruction Scope
Runtime instructions tell the agent to execute Python snippets that import crypto_charts.py, write files under ~/clawd/charts, call external data sources (Yahoo Finance, CoinGecko), and then use a platform 'message' command to send charts to Telegram with a specific hard-coded target ("7887978276"). The hard-coded recipient is a direct privacy/exfiltration risk if executed automatically. The instructions assume local files and messaging capabilities that are not declared or sandboxed.
Install Mechanism
There is no install spec (instruction-only), so the skill itself does not drop or run code on install — that limits immediate installer risk. However, because the instructions expect a local crypto_charts.py module that is not included, the skill as-published is incomplete. The lack of an install step means nothing from the skill will be written to disk, but execution of the described commands will still rely on external code/resources the user must already have.
Credentials
The skill requests no environment variables or credentials (proportionate). It does reference external services (Yahoo Finance, CoinGecko) that normally require no keys. However, it also instructs sending images via Clawdbot's 'message' command to a specific Telegram target; no credentials are declared for that capability and the hard-coded recipient is suspicious because it would transmit generated charts to an external actor without explicit user consent.
Persistence & Privilege
The skill does not request 'always: true' or other elevated persistence, does not modify other skills or system-wide settings, and is user-invocable only. It does assume access to the agent's messaging facility, which is typical, but that access is not explicitly declared in the skill metadata.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install charts
  3. After installation, invoke the skill by name or use /charts
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.0
- Added _meta.json file to the skill. - Version bump to 1.1.0; no changes to code or documentation logic. - No impact to chart generation features or user workflow.
v1.0.0
Initial release of the charts skill. - Generates professional technical analysis charts with candlesticks, Fibonacci retracement, SMA(20/50), and RSI for 6 tracked assets (BTC, ETH, XRP, SUI, Gold, Silver). - Supports bulk chart generation or fast on-demand single-asset charts, using Yahoo Finance and CoinGecko. - Automatic detection and reporting of technical patterns (crossovers, head & shoulders, RSI conditions, etc). - Output charts include all major TA overlays, price marker, and use a modern dark theme. - Instructions provided for sending generated charts via Telegram. - Handles rate-limiting and chart file cleanup automatically.
Metadata
Slug charts
Version 1.1.0
License
All-time Installs 16
Active Installs 15
Total Versions 2
Frequently Asked Questions

What is Charts?

Generate 90-day candlestick charts with SMA 20/50, RSI, Fibonacci retracements, and pattern detection for BTC, ETH, XRP, SUI, Gold, and Silver. It is an AI Agent Skill for Claude Code / OpenClaw, with 1135 downloads so far.

How do I install Charts?

Run "/install charts" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Charts free?

Yes, Charts is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Charts support?

Charts is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Charts?

It is built and maintained by ryandeangraves (@ryandeangraves); the current version is v1.1.0.

💬 Comments