{
  "schemaVersion": "1.0",
  "item": {
    "slug": "stocks",
    "name": "Stocks and Financial Data Pull",
    "source": "tencent",
    "type": "skill",
    "category": "数据分析",
    "sourceUrl": "https://clawhub.ai/lkcair/stocks",
    "canonicalUrl": "https://clawhub.ai/lkcair/stocks",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/stocks",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=stocks",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "requirements.txt",
      "scripts/yfinance_ai.py",
      "REFERENCES.md",
      "SKILL.md",
      "skill.json",
      "_meta.json"
    ],
    "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-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/stocks"
    },
    "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/stocks",
    "agentPageUrl": "https://openagent3.xyz/skills/stocks/agent",
    "manifestUrl": "https://openagent3.xyz/skills/stocks/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/stocks/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": "Stocks Skill",
        "body": "56+ financial tools via Yahoo Finance. Prices, fundamentals, earnings, options, crypto, forex, commodities, news."
      },
      {
        "title": "Github Open-Souce",
        "body": "Please star Github if you like the skill.\nAlso available for OpenWebUI.\nhttps://github.com/lkcair/yfinance-ai"
      },
      {
        "title": "Setup",
        "body": "Run from the skill directory:\n\npython3 -m venv .venv\n.venv/bin/python3 -m pip install -r requirements.txt\n\nWindows: use .venv\\Scripts\\python3 instead of .venv/bin/python3."
      },
      {
        "title": "AGNOSTIC OS / One-shot Design ( Goals )",
        "body": "This skill is designed to be agnostic to OS and execution environment.\nIt loads only essential context on first use and uses a single-shot interaction pattern for reliability.\nBasic usage pattern provided in TOOLS.md and the All Functions list in SKILL.md body."
      },
      {
        "title": "Quotation / Command Execution Reliability (common pitfall)",
        "body": "If a command invocation uses complex shell quoting, it may fail in various environments. Use a here-doc style or a tiny helper script to avoid escaping issues.\nCrucially, ensure you are executing Python scripts using the interpreter from the skill's virtual environment. Simply calling python3 might not use the correct interpreter if the venv is not activated, leading to ModuleNotFoundError.\nAlways use the full path to the venv's Python interpreter for execution, e.g.:\n/home/openclaw/.openclaw/venv/stocks/bin/python3\nEnsure that all necessary packages (like pydantic for yfinance-ai) are installed within this specific venv using its associated pip command:\n/home/openclaw/.openclaw/venv/stocks/bin/pip install <package_name>\nExample robust pattern using a here-doc:\n\n/home/openclaw/.openclaw/venv/stocks/bin/python3 - << 'PY'\nimport asyncio, sys\nsys.path.insert(0, '.')\nfrom yfinance_ai import Tools\n\nt = Tools()\nasync def main():\n    r = await t.get_key_ratios(ticker='UNH')\n    print(r)\nasyncio.run(main())\nPY\n\nIf complex inline scripts are problematic, wrap the call in a small Python script file in the workspace (e.g., in scripts/) and execute that script using the venv's Python interpreter."
      },
      {
        "title": "Agent Quick-Start",
        "body": "After setup, copy the template below into your agent's TOOLS.md (or whichever file your framework injects into every session). This is the single most important step — if the agent can see the invocation pattern, it will work every time.\n\nReplace SKILL_DIR with the absolute path to this skill's directory (e.g. where scripts/ and .venv/ live).\n\n# Stocks Skill\n\n## Usage\n\n```bash\ncd SKILL_DIR/scripts && SKILL_DIR/.venv/bin/python3 -c \"\nimport asyncio, sys\nsys.path.insert(0, '.')\nfrom yfinance_ai import Tools\nt = Tools()\nasync def main():\n    result = await t.METHOD(ARGS)\n    print(result)\nasyncio.run(main())\n\" 2>/dev/null\n```\n\nReplace METHOD(ARGS) with any call below. Suppress stderr (2>/dev/null) to hide warnings.\n\n## Common Calls\n\n| Need | Method |\n|---|---|\n| Stock price | `get_stock_price(ticker='AAPL')` |\n| Key ratios (P/E, ROE, margins) | `get_key_ratios(ticker='AAPL')` |\n| Company overview | `get_company_overview(ticker='AAPL')` |\n| Full deep-dive | `get_complete_analysis(ticker='AAPL')` |\n| Compare stocks | `compare_stocks(tickers='AAPL,MSFT,GOOGL')` |\n| Crypto | `get_crypto_price(symbol='BTC')` |\n| Forex | `get_forex_rate(pair='EURUSD')` |\n| Commodities | `get_commodity_price(commodity='gold')` |\n| News | `get_stock_news(ticker='AAPL')` |\n| Market indices | `get_market_indices()` |\n| Dividends | `get_dividends(ticker='AAPL')` |\n| Earnings | `get_earnings_history(ticker='AAPL')` |\n| Analyst recs | `get_analyst_recommendations(ticker='AAPL')` |\n| Options chain | `get_options_chain(ticker='SPY')` |\n| Market open/closed | `get_market_status()` |\n\n## Routing\n\n- Price / quote → `get_stock_price`\n- Ratios / valuation → `get_key_ratios`\n- \"Tell me about\" → `get_company_overview`\n- Deep dive → `get_complete_analysis`\n- Compare → `compare_stocks`\n- Crypto → `get_crypto_price`\n- Forex → `get_forex_rate`\n- Commodities → `get_commodity_price`\n- News → `get_stock_news`"
      },
      {
        "title": "All Functions",
        "body": "See skill.json for the full list of 56+ functions, parameters, and trigger keywords. Categories:\n\nQuotes: get_stock_price, get_stock_quote, get_fast_info, get_historical_data\nCompany: get_company_info, get_company_overview, get_company_officers\nFinancials: get_income_statement, get_balance_sheet, get_cash_flow, get_key_ratios, get_financial_summary\nEarnings: get_earnings_history, get_earnings_dates, get_analyst_estimates, get_eps_trend\nAnalyst: get_analyst_recommendations, get_analyst_price_targets, get_upgrades_downgrades\nOwnership: get_institutional_holders, get_insider_transactions, get_major_holders\nDividends: get_dividends, get_stock_splits, get_corporate_actions\nOptions: get_options_chain, get_options_expirations\nMarket: get_market_indices, get_sector_performance, get_market_status\nCrypto/Forex/Commodities: get_crypto_price, get_forex_rate, get_commodity_price\nCompare: compare_stocks, get_peer_comparison, get_historical_comparison\nNews: get_stock_news, get_sec_filings\nUtility: search_ticker, validate_ticker, run_self_test"
      },
      {
        "title": "Notes",
        "body": "Data from Yahoo Finance. Slight real-time delays possible.\nAll functions are async — the asyncio.run() wrapper handles this.\nWorks on Linux, macOS, and Windows (adjust venv path for Windows)."
      }
    ],
    "body": "Stocks Skill\n\n56+ financial tools via Yahoo Finance. Prices, fundamentals, earnings, options, crypto, forex, commodities, news.\n\nGithub Open-Souce\n\nPlease star Github if you like the skill. Also available for OpenWebUI. https://github.com/lkcair/yfinance-ai\n\nSetup\n\nRun from the skill directory:\n\npython3 -m venv .venv\n.venv/bin/python3 -m pip install -r requirements.txt\n\n\nWindows: use .venv\\Scripts\\python3 instead of .venv/bin/python3.\n\nAGNOSTIC OS / One-shot Design ( Goals )\nThis skill is designed to be agnostic to OS and execution environment.\nIt loads only essential context on first use and uses a single-shot interaction pattern for reliability.\nBasic usage pattern provided in TOOLS.md and the All Functions list in SKILL.md body.\nQuotation / Command Execution Reliability (common pitfall)\nIf a command invocation uses complex shell quoting, it may fail in various environments. Use a here-doc style or a tiny helper script to avoid escaping issues.\nCrucially, ensure you are executing Python scripts using the interpreter from the skill's virtual environment. Simply calling python3 might not use the correct interpreter if the venv is not activated, leading to ModuleNotFoundError.\nAlways use the full path to the venv's Python interpreter for execution, e.g.: /home/openclaw/.openclaw/venv/stocks/bin/python3\nEnsure that all necessary packages (like pydantic for yfinance-ai) are installed within this specific venv using its associated pip command: /home/openclaw/.openclaw/venv/stocks/bin/pip install <package_name>\nExample robust pattern using a here-doc:\n/home/openclaw/.openclaw/venv/stocks/bin/python3 - << 'PY'\nimport asyncio, sys\nsys.path.insert(0, '.')\nfrom yfinance_ai import Tools\n\nt = Tools()\nasync def main():\n    r = await t.get_key_ratios(ticker='UNH')\n    print(r)\nasyncio.run(main())\nPY\n\nIf complex inline scripts are problematic, wrap the call in a small Python script file in the workspace (e.g., in scripts/) and execute that script using the venv's Python interpreter.\nAgent Quick-Start\n\nAfter setup, copy the template below into your agent's TOOLS.md (or whichever file your framework injects into every session). This is the single most important step — if the agent can see the invocation pattern, it will work every time.\n\nReplace SKILL_DIR with the absolute path to this skill's directory (e.g. where scripts/ and .venv/ live).\n\n# Stocks Skill\n\n## Usage\n\n```bash\ncd SKILL_DIR/scripts && SKILL_DIR/.venv/bin/python3 -c \"\nimport asyncio, sys\nsys.path.insert(0, '.')\nfrom yfinance_ai import Tools\nt = Tools()\nasync def main():\n    result = await t.METHOD(ARGS)\n    print(result)\nasyncio.run(main())\n\" 2>/dev/null\n```\n\nReplace METHOD(ARGS) with any call below. Suppress stderr (2>/dev/null) to hide warnings.\n\n## Common Calls\n\n| Need | Method |\n|---|---|\n| Stock price | `get_stock_price(ticker='AAPL')` |\n| Key ratios (P/E, ROE, margins) | `get_key_ratios(ticker='AAPL')` |\n| Company overview | `get_company_overview(ticker='AAPL')` |\n| Full deep-dive | `get_complete_analysis(ticker='AAPL')` |\n| Compare stocks | `compare_stocks(tickers='AAPL,MSFT,GOOGL')` |\n| Crypto | `get_crypto_price(symbol='BTC')` |\n| Forex | `get_forex_rate(pair='EURUSD')` |\n| Commodities | `get_commodity_price(commodity='gold')` |\n| News | `get_stock_news(ticker='AAPL')` |\n| Market indices | `get_market_indices()` |\n| Dividends | `get_dividends(ticker='AAPL')` |\n| Earnings | `get_earnings_history(ticker='AAPL')` |\n| Analyst recs | `get_analyst_recommendations(ticker='AAPL')` |\n| Options chain | `get_options_chain(ticker='SPY')` |\n| Market open/closed | `get_market_status()` |\n\n## Routing\n\n- Price / quote → `get_stock_price`\n- Ratios / valuation → `get_key_ratios`\n- \"Tell me about\" → `get_company_overview`\n- Deep dive → `get_complete_analysis`\n- Compare → `compare_stocks`\n- Crypto → `get_crypto_price`\n- Forex → `get_forex_rate`\n- Commodities → `get_commodity_price`\n- News → `get_stock_news`\n\nAll Functions\n\nSee skill.json for the full list of 56+ functions, parameters, and trigger keywords. Categories:\n\nQuotes: get_stock_price, get_stock_quote, get_fast_info, get_historical_data\nCompany: get_company_info, get_company_overview, get_company_officers\nFinancials: get_income_statement, get_balance_sheet, get_cash_flow, get_key_ratios, get_financial_summary\nEarnings: get_earnings_history, get_earnings_dates, get_analyst_estimates, get_eps_trend\nAnalyst: get_analyst_recommendations, get_analyst_price_targets, get_upgrades_downgrades\nOwnership: get_institutional_holders, get_insider_transactions, get_major_holders\nDividends: get_dividends, get_stock_splits, get_corporate_actions\nOptions: get_options_chain, get_options_expirations\nMarket: get_market_indices, get_sector_performance, get_market_status\nCrypto/Forex/Commodities: get_crypto_price, get_forex_rate, get_commodity_price\nCompare: compare_stocks, get_peer_comparison, get_historical_comparison\nNews: get_stock_news, get_sec_filings\nUtility: search_ticker, validate_ticker, run_self_test\nNotes\nData from Yahoo Finance. Slight real-time delays possible.\nAll functions are async — the asyncio.run() wrapper handles this.\nWorks on Linux, macOS, and Windows (adjust venv path for Windows)."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/lkcair/stocks",
    "publisherUrl": "https://clawhub.ai/lkcair/stocks",
    "owner": "lkcair",
    "version": "4.1.8",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/stocks",
    "downloadUrl": "https://openagent3.xyz/downloads/stocks",
    "agentUrl": "https://openagent3.xyz/skills/stocks/agent",
    "manifestUrl": "https://openagent3.xyz/skills/stocks/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/stocks/agent.md"
  }
}