{
  "schemaVersion": "1.0",
  "item": {
    "slug": "finclaw",
    "name": "FinClaw",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/salihgun/finclaw",
    "canonicalUrl": "https://clawhub.ai/salihgun/finclaw",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/finclaw",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=finclaw",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "lib/__init__.py",
      "lib/config.py",
      "lib/db.py",
      "lib/formatters.py",
      "lib/rate_limiter.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/finclaw"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/finclaw",
    "agentPageUrl": "https://openagent3.xyz/skills/finclaw/agent",
    "manifestUrl": "https://openagent3.xyz/skills/finclaw/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/finclaw/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "FinClaw — AI Finance Assistant",
        "body": "Your personal finance assistant covering US stocks, BIST (Turkish market), crypto, and forex. Includes portfolio tracking, price alerts, charts, technical analysis, daily briefings, and more."
      },
      {
        "title": "First-Time Setup",
        "body": "Run once after installation to create the Python venv and database:\n\npython3 {baseDir}/scripts/setup.py\n\nThen add to openclaw.json under skills.entries:\n\n\"finclaw\": {\n  \"env\": {\n    \"FINNHUB_API_KEY\": \"\",\n    \"FRED_API_KEY\": \"\",\n    \"ALPHA_VANTAGE_API_KEY\": \"\",\n    \"EXCHANGE_RATE_API_KEY\": \"\"\n  }\n}\n\nAPI keys are optional — core features (prices, charts, TA, portfolio, alerts) work without any keys."
      },
      {
        "title": "Running Scripts",
        "body": "All scripts use the skill's Python venv:\n\n{baseDir}/venv/bin/python3 {baseDir}/scripts/<script>.py [args]"
      },
      {
        "title": "quote.py — Real-Time Quotes",
        "body": "Auto-detects asset type from symbol. Results cached for 60 seconds.\n\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py AAPL              # US stock\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py THYAO.IS          # BIST stock\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py BTC               # Crypto\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py USD/TRY           # Forex\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py AAPL MSFT BTC     # Multiple\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py AAPL --force      # Skip cache\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py AAPL --json       # JSON output\n\nSymbol detection: .IS → BIST | BTC/ETH/SOL... → Crypto | USD/TRY → Forex | else → US stock"
      },
      {
        "title": "crypto.py — Crypto Market Data",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/crypto.py price BTC        # Binance price\n{baseDir}/venv/bin/python3 {baseDir}/scripts/crypto.py top --limit 10   # Top gainers\n{baseDir}/venv/bin/python3 {baseDir}/scripts/crypto.py try BTC          # Price in TRY"
      },
      {
        "title": "forex.py — Exchange Rates",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/forex.py rate USD TRY\n{baseDir}/venv/bin/python3 {baseDir}/scripts/forex.py convert USD TRY --amount 1000\n{baseDir}/venv/bin/python3 {baseDir}/scripts/forex.py multi USD --targets TRY EUR GBP"
      },
      {
        "title": "chart.py — Price Charts",
        "body": "Generates PNG charts. Send the saved file to the user.\n\n{baseDir}/venv/bin/python3 {baseDir}/scripts/chart.py AAPL                           # Candlestick\n{baseDir}/venv/bin/python3 {baseDir}/scripts/chart.py BTC --type line --period 1y     # Line chart\n{baseDir}/venv/bin/python3 {baseDir}/scripts/chart.py AAPL --sma 20 50 200           # With SMAs\n\nPeriods: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, max"
      },
      {
        "title": "technical.py — Technical Analysis",
        "body": "SMA, EMA, RSI, MACD, Bollinger Bands with buy/sell signals.\n\n{baseDir}/venv/bin/python3 {baseDir}/scripts/technical.py AAPL\n{baseDir}/venv/bin/python3 {baseDir}/scripts/technical.py BTC --period 1y --json"
      },
      {
        "title": "news.py — Financial News (requires FINNHUB_API_KEY)",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/news.py company --symbol AAPL\n{baseDir}/venv/bin/python3 {baseDir}/scripts/news.py market --category crypto"
      },
      {
        "title": "screener.py — Stock Screener",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/screener.py us                    # US gainers\n{baseDir}/venv/bin/python3 {baseDir}/scripts/screener.py bist --direction bottom  # BIST losers\n{baseDir}/venv/bin/python3 {baseDir}/scripts/screener.py crypto --limit 15       # Crypto gainers"
      },
      {
        "title": "portfolio.py — Position Management",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py add --symbol AAPL --shares 10 --price 150\n{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py sell --symbol AAPL --shares 5 --price 175\n{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py remove --symbol AAPL\n{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py list\n{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py summary\n\nOptional: --fees 1.50, --date 2024-01-15, --name \"Apple Inc\", --notes \"Long hold\""
      },
      {
        "title": "alerts.py — Price Alerts",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py create --symbol AAPL --condition above --target 200\n{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py create --symbol BTC --condition below --target 60000 --note \"Buy signal\"\n{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py list\n{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py delete --id 3\n{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py snooze --id 3 --hours 48\n\nConditions: above, below, change_pct, volume_above"
      },
      {
        "title": "check_alerts.py — Alert Checker (for cron)",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/check_alerts.py"
      },
      {
        "title": "pnl.py — Profit & Loss",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/pnl.py                    # All positions\n{baseDir}/venv/bin/python3 {baseDir}/scripts/pnl.py --symbol AAPL      # Single symbol"
      },
      {
        "title": "watchlist.py — Watchlists",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py create --name \"Tech\"\n{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py add --name \"Tech\" --symbol AAPL\n{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py show --name \"Tech\" --prices\n{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py list"
      },
      {
        "title": "briefing.py — Market Briefings",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/briefing.py morning    # Full morning briefing\n{baseDir}/venv/bin/python3 {baseDir}/scripts/briefing.py close      # End-of-day summary\n{baseDir}/venv/bin/python3 {baseDir}/scripts/briefing.py weekend    # Weekend crypto + forex recap"
      },
      {
        "title": "macro.py — Macro Economics (requires FRED_API_KEY)",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/macro.py dashboard\n{baseDir}/venv/bin/python3 {baseDir}/scripts/macro.py indicator --name fed_rate\n{baseDir}/venv/bin/python3 {baseDir}/scripts/macro.py list"
      },
      {
        "title": "earnings.py — Earnings Calendar (requires FINNHUB_API_KEY)",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/earnings.py calendar\n{baseDir}/venv/bin/python3 {baseDir}/scripts/earnings.py symbol --symbol AAPL"
      },
      {
        "title": "sentiment.py — News Sentiment (requires ALPHA_VANTAGE_API_KEY)",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/sentiment.py --symbol AAPL\n{baseDir}/venv/bin/python3 {baseDir}/scripts/sentiment.py --topics technology"
      },
      {
        "title": "research.py — Deep Research",
        "body": "{baseDir}/venv/bin/python3 {baseDir}/scripts/research.py AAPL"
      },
      {
        "title": "Data Sources",
        "body": "US Stocks: Finnhub (primary), yfinance (fallback) — no key needed\nBIST: yfinance with .IS suffix — no key needed\nCrypto: Binance API — no key needed\nForex: ExchangeRate-API — works without key\nCharts/TA: matplotlib + mplfinance + pandas — local computation\nNews: Finnhub — needs FINNHUB_API_KEY\nMacro: FRED — needs FRED_API_KEY\nSentiment: Alpha Vantage — needs ALPHA_VANTAGE_API_KEY"
      }
    ],
    "body": "FinClaw — AI Finance Assistant\n\nYour personal finance assistant covering US stocks, BIST (Turkish market), crypto, and forex. Includes portfolio tracking, price alerts, charts, technical analysis, daily briefings, and more.\n\nFirst-Time Setup\n\nRun once after installation to create the Python venv and database:\n\npython3 {baseDir}/scripts/setup.py\n\n\nThen add to openclaw.json under skills.entries:\n\n\"finclaw\": {\n  \"env\": {\n    \"FINNHUB_API_KEY\": \"\",\n    \"FRED_API_KEY\": \"\",\n    \"ALPHA_VANTAGE_API_KEY\": \"\",\n    \"EXCHANGE_RATE_API_KEY\": \"\"\n  }\n}\n\n\nAPI keys are optional — core features (prices, charts, TA, portfolio, alerts) work without any keys.\n\nRunning Scripts\n\nAll scripts use the skill's Python venv:\n\n{baseDir}/venv/bin/python3 {baseDir}/scripts/<script>.py [args]\n\nMarket Data\nquote.py — Real-Time Quotes\n\nAuto-detects asset type from symbol. Results cached for 60 seconds.\n\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py AAPL              # US stock\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py THYAO.IS          # BIST stock\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py BTC               # Crypto\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py USD/TRY           # Forex\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py AAPL MSFT BTC     # Multiple\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py AAPL --force      # Skip cache\n{baseDir}/venv/bin/python3 {baseDir}/scripts/quote.py AAPL --json       # JSON output\n\n\nSymbol detection: .IS → BIST | BTC/ETH/SOL... → Crypto | USD/TRY → Forex | else → US stock\n\ncrypto.py — Crypto Market Data\n{baseDir}/venv/bin/python3 {baseDir}/scripts/crypto.py price BTC        # Binance price\n{baseDir}/venv/bin/python3 {baseDir}/scripts/crypto.py top --limit 10   # Top gainers\n{baseDir}/venv/bin/python3 {baseDir}/scripts/crypto.py try BTC          # Price in TRY\n\nforex.py — Exchange Rates\n{baseDir}/venv/bin/python3 {baseDir}/scripts/forex.py rate USD TRY\n{baseDir}/venv/bin/python3 {baseDir}/scripts/forex.py convert USD TRY --amount 1000\n{baseDir}/venv/bin/python3 {baseDir}/scripts/forex.py multi USD --targets TRY EUR GBP\n\nchart.py — Price Charts\n\nGenerates PNG charts. Send the saved file to the user.\n\n{baseDir}/venv/bin/python3 {baseDir}/scripts/chart.py AAPL                           # Candlestick\n{baseDir}/venv/bin/python3 {baseDir}/scripts/chart.py BTC --type line --period 1y     # Line chart\n{baseDir}/venv/bin/python3 {baseDir}/scripts/chart.py AAPL --sma 20 50 200           # With SMAs\n\n\nPeriods: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, max\n\ntechnical.py — Technical Analysis\n\nSMA, EMA, RSI, MACD, Bollinger Bands with buy/sell signals.\n\n{baseDir}/venv/bin/python3 {baseDir}/scripts/technical.py AAPL\n{baseDir}/venv/bin/python3 {baseDir}/scripts/technical.py BTC --period 1y --json\n\nnews.py — Financial News (requires FINNHUB_API_KEY)\n{baseDir}/venv/bin/python3 {baseDir}/scripts/news.py company --symbol AAPL\n{baseDir}/venv/bin/python3 {baseDir}/scripts/news.py market --category crypto\n\nscreener.py — Stock Screener\n{baseDir}/venv/bin/python3 {baseDir}/scripts/screener.py us                    # US gainers\n{baseDir}/venv/bin/python3 {baseDir}/scripts/screener.py bist --direction bottom  # BIST losers\n{baseDir}/venv/bin/python3 {baseDir}/scripts/screener.py crypto --limit 15       # Crypto gainers\n\nPortfolio & Alerts\nportfolio.py — Position Management\n{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py add --symbol AAPL --shares 10 --price 150\n{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py sell --symbol AAPL --shares 5 --price 175\n{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py remove --symbol AAPL\n{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py list\n{baseDir}/venv/bin/python3 {baseDir}/scripts/portfolio.py summary\n\n\nOptional: --fees 1.50, --date 2024-01-15, --name \"Apple Inc\", --notes \"Long hold\"\n\nalerts.py — Price Alerts\n{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py create --symbol AAPL --condition above --target 200\n{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py create --symbol BTC --condition below --target 60000 --note \"Buy signal\"\n{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py list\n{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py delete --id 3\n{baseDir}/venv/bin/python3 {baseDir}/scripts/alerts.py snooze --id 3 --hours 48\n\n\nConditions: above, below, change_pct, volume_above\n\ncheck_alerts.py — Alert Checker (for cron)\n{baseDir}/venv/bin/python3 {baseDir}/scripts/check_alerts.py\n\npnl.py — Profit & Loss\n{baseDir}/venv/bin/python3 {baseDir}/scripts/pnl.py                    # All positions\n{baseDir}/venv/bin/python3 {baseDir}/scripts/pnl.py --symbol AAPL      # Single symbol\n\nwatchlist.py — Watchlists\n{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py create --name \"Tech\"\n{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py add --name \"Tech\" --symbol AAPL\n{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py show --name \"Tech\" --prices\n{baseDir}/venv/bin/python3 {baseDir}/scripts/watchlist.py list\n\nIntelligence\nbriefing.py — Market Briefings\n{baseDir}/venv/bin/python3 {baseDir}/scripts/briefing.py morning    # Full morning briefing\n{baseDir}/venv/bin/python3 {baseDir}/scripts/briefing.py close      # End-of-day summary\n{baseDir}/venv/bin/python3 {baseDir}/scripts/briefing.py weekend    # Weekend crypto + forex recap\n\nmacro.py — Macro Economics (requires FRED_API_KEY)\n{baseDir}/venv/bin/python3 {baseDir}/scripts/macro.py dashboard\n{baseDir}/venv/bin/python3 {baseDir}/scripts/macro.py indicator --name fed_rate\n{baseDir}/venv/bin/python3 {baseDir}/scripts/macro.py list\n\nearnings.py — Earnings Calendar (requires FINNHUB_API_KEY)\n{baseDir}/venv/bin/python3 {baseDir}/scripts/earnings.py calendar\n{baseDir}/venv/bin/python3 {baseDir}/scripts/earnings.py symbol --symbol AAPL\n\nsentiment.py — News Sentiment (requires ALPHA_VANTAGE_API_KEY)\n{baseDir}/venv/bin/python3 {baseDir}/scripts/sentiment.py --symbol AAPL\n{baseDir}/venv/bin/python3 {baseDir}/scripts/sentiment.py --topics technology\n\nresearch.py — Deep Research\n{baseDir}/venv/bin/python3 {baseDir}/scripts/research.py AAPL\n\nData Sources\nUS Stocks: Finnhub (primary), yfinance (fallback) — no key needed\nBIST: yfinance with .IS suffix — no key needed\nCrypto: Binance API — no key needed\nForex: ExchangeRate-API — works without key\nCharts/TA: matplotlib + mplfinance + pandas — local computation\nNews: Finnhub — needs FINNHUB_API_KEY\nMacro: FRED — needs FRED_API_KEY\nSentiment: Alpha Vantage — needs ALPHA_VANTAGE_API_KEY"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/salihgun/finclaw",
    "publisherUrl": "https://clawhub.ai/salihgun/finclaw",
    "owner": "salihgun",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/finclaw",
    "downloadUrl": "https://openagent3.xyz/downloads/finclaw",
    "agentUrl": "https://openagent3.xyz/skills/finclaw/agent",
    "manifestUrl": "https://openagent3.xyz/skills/finclaw/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/finclaw/agent.md"
  }
}