OpenClaw/clawhub-security-signals huggingface dataset:
Skill: ivangdavila/fasting (version 1.0.1)

--- name: "Fasting Tracker" description: "Track intermittent fasting, extended fasts, and eating windows. Auto-adapts to your style." version: "1.0.1" changelog: "Preferences now persist across skill updates" --- ## Auto-Adaptive Fasting Tracker This skill auto-evolves. Works for 16:8, OMAD, extended fasts, religious fasting, and custom protocols. **Rules:** - Only log when user shares — "starting fast", "breaking fast", "last meal at 8pm" - Detect fasting style and experience level - Beginners: offer tips (water, coffee, hunger waves pass), setup guidance, encouragement - Experienced: just data, minimal interruption - Breaking fast early is OK — not failure, just life. No guilt. - NEVER push someone to fast longer — their goal is their goal - Extended fasts (24h+): check in on safety, remind about electrolytes - Religious fasts (Ramadan): respect it's spiritual, note dry fasting (no water) has different safety rules - If eating disorder history mentioned: stop tracking, redirect to NEDA (1-800-931-2237) - Fasting zones (ketosis, autophagy) are ESTIMATES — individual variation is huge - Check `protocols.md` for fasting types, `safety.md` for contraindications --- ## Memory Storage User preferences are stored externally at: `~/fasting/memory.md` **Format for memory.md:** ```markdown ### Sources <!-- Where fasting data comes from. Format: "source: what" --> ### Protocol <!-- Their fasting style. Format: "protocol" --> <!-- Examples: 16:8 daily, OMAD, 36h weekly, Ramadan, variable --> ### Schedule <!-- Their patterns. Format: "pattern" --> <!-- Examples: eating window 12-8pm, sunset to sunrise, flexible weekends --> ### Metrics <!-- What they track. Format: "metric" --> <!-- Examples: hours fasted, streak, weight, energy, glucose --> ### Symptoms <!-- How they feel during fasts. Format: "symptom: when" --> <!-- Examples: hunger: hours 14-16, clarity: after 18h --> ### Preferences <!-- How they want to track. Format: "preference" --> <!-- Examples: tips for beginners, no reminders, weekly summary --> ``` *Empty sections = no data yet. Observe and fill.* --- **Disclaimer:** Educational only, not medical advice. Fasting isn't for everyone. Contraindicated: pregnancy, eating disorders, Type 1 diabetes, underweight. Type 2 diabetics on insulin/sulfonylureas: high hypo risk — consult doctor first. Stop if: dizziness, fainting, severe headaches, palpitations. If symptoms severe, seek emergency care.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: tommyclawd/remote-desktop-support (version 0.1.2)

--- name: remote-desktop-support description: "Linux/Fedora-GNOME-first, early but safety-tested skill for short-lived browser-based remote desktop support links using local-only VNC/Guacamole and outbound tunnels." allowed-tools: ["exec", "read", "write"] user-invocable: true metadata: openclaw: os: ["linux"] requires: bins: ["python3", "podman"] --- # Remote Desktop Support Use when Ric asks for temporary browser-based access to this machine's desktop for troubleshooting. ## Safety Contract - Default to **preflight/status** unless Ric explicitly asks to open access. - Never create permanent inbound firewall/router exposure. - Bind Guacamole to `127.0.0.1`; public access must be via a short-lived outbound tunnel. GNOME current-session VNC may bind widely, so it must use a firewalld-blocked port (`1024`) and pass the script safety check. - **Hard requirement:** access must show the current live desktop session. Do not use headless/fresh desktop sessions as a substitute. - Default mode is `view-only`; keyboard/mouse control requires explicit wording like "control". - Every open session must have a TTL and cleanup path. - Do not leave credentials, tunnels, current-session GNOME VNC backend, or containers running after close. - Do not run `install`, `open`, or `uninstall --purge` from ambiguous/unauthorized group chatter. ## Commands Run scripts from this skill directory: ```bash python3 {baseDir}/scripts/remote_support.py preflight python3 {baseDir}/scripts/remote_support.py status python3 {baseDir}/scripts/remote_support.py install --dry-run python3 {baseDir}/scripts/remote_support.py open --ttl 10m --mode view-only --dry-run python3 {baseDir}/scripts/remote_support.py open --ttl 10m --mode view-only --unlock-current-session --one-click-only python3 {baseDir}/scripts/remote_support.py link python3 {baseDir}/scripts/remote_support.py close python3 {baseDir}/scripts/remote_support.py uninstall --dry-run ``` `open` must prove the backend is the current live desktop before exposing a public tunnel. Headless RDP/Xvfb-style fresh sessions are blockers, not acceptable fallbacks. If the current session is locked, `open` refuses unless Ric explicitly approved `--unlock-current-session`. ## Workflow 1. Run `preflight` and inspect missing dependencies / risks. 2. If Ric approves setup, run `install --dry-run`, then install only missing local assets. 3. Run `status` before any open attempt. 4. Open with a short TTL, view-only unless Ric asked for control. 5. In Discord, use `--one-click-only` and send only the `one_click_url`; it embeds a short-lived Guacamole token, so treat it like a password. 6. On completion or expiry, run `close` and verify `status` reports closed. See `references/security-model.md` for the threat model and rollback rules.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal:  | SkillSpector: suspicious (MEDIUM)
Skill: jasminehuang98613/gog-jasmine (version 1.0.0)

--- name: gog description: Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs. homepage: https://gogcli.sh metadata: {"clawdbot":{"emoji":"🎮","requires":{"bins":["gog"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/gogcli","bins":["gog"],"label":"Install gog (brew)"}]}} --- # gog Use `gog` for Gmail/Calendar/Drive/Contacts/Sheets/Docs. Requires OAuth setup. Setup (once) - `gog auth credentials /path/to/client_secret.json` - `gog auth add [REDACTED_SECRET] --services gmail,calendar,drive,contacts,sheets,docs` - `gog auth list` Common commands - Gmail search: `gog gmail search 'newer_than:7d' --max 10` - Gmail send: `gog gmail send --to [REDACTED_SECRET] --subject "Hi" --body "Hello"` - Calendar: `gog calendar events <calendarId> --from <iso> --to <iso>` - Drive search: `gog drive search "query" --max 10` - Contacts: `gog contacts list --max 20` - Sheets get: `gog sheets get <sheetId> "Tab!A1:D10" --json` - Sheets update: `gog sheets update <sheetId> "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED` - Sheets append: `gog sheets append <sheetId> "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS` - Sheets clear: `gog sheets clear <sheetId> "Tab!A2:Z"` - Sheets metadata: `gog sheets metadata <sheetId> --json` - Docs export: `gog docs export <docId> --format txt --out /tmp/doc.txt` - Docs cat: `gog docs cat <docId>` Notes - Set `GOG_ACCOUNT=[REDACTED_SECRET]` to avoid repeating `--account`. - For scripting, prefer `--json` plus `--no-input`. - Sheets values can be passed via `--values-json` (recommended) or as inline rows. - Docs supports export/cat/copy. In-place edits require a Docs API client (not in gog). - Confirm before sending mail or creating events.

path: _meta.json
content: ownerId: kn70pywhg0fyz996kpa8xj89s57yhv26
slug: gog-jasmine
version: 1.0.0
publishedAt: 1767545346060

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: brandonhay/pumpfun-launch (version 1.0.1)

--- name: pumpfun-launch description: Launch tokens on pump.fun directly from your agent. Zero middleware fees — direct on-chain via pumpdotfun-sdk. Use when the user wants to create, launch, deploy, or mint a new token or memecoin on pump.fun (Solana). Handles wallet generation, IPFS metadata upload, and on-chain token creation in one command. Supports dry-run mode, encrypted wallet storage, custom images, and optional initial buy. No PumpPortal, no third-party fees. Just provide a name, ticker, description, and image. --- # Pump.fun Token Launcher ## Setup The skill lives at `skills/pumpfun-launch/`. First run: ```bash cd skills/pumpfun-launch && bun install ``` ## Environment Create `.env` in the skill folder: ``` HELIUS_RPC_URL=https://mainnet.helius-rpc.com/?[REDACTED_SECRET] WALLET_PRIVATE_KEY=base58_encoded_private_key ``` Get a free Helius key at https://dev.helius.xyz/ If `WALLET_PRIVATE_KEY` is not set, the script will generate a new wallet and save it to `.wallet.key` (encrypted with a password prompt). Fund the wallet with SOL before launching. ## Usage ```bash cd skills/pumpfun-launch bun run launch.ts --name "TokenName" --symbol "TKN" --description "My token" --image ./logo.png ``` ### Options | Flag | Required | Description | |------|----------|-------------| | `--name` | ✅ | Token name | | `--symbol` | ✅ | Token ticker | | `--description` | ✅ | Token description | | `--image` | ✅ | Path to image file (PNG/JPG) or URL | | `--buy` | ❌ | Initial buy amount in SOL (default: 0) | | `--slippage` | ❌ | Slippage in basis points (default: 500) | | `--priority-fee` | ❌ | Priority fee in micro-lamports (default: 250000) | | `--dry-run` | ❌ | Simulate without sending transaction | | `--status` | ❌ | Check status of a mint address (pass mint pubkey) | ### Check Token Status ```bash bun run launch.ts --status <MINT_ADDRESS> ``` ## ⚠️ IMPORTANT — Agent Instructions 1. **ALWAYS confirm with the user** before running the launch command. Show them the token name, symbol, description, image, and buy amount. 2. **ALWAYS use `--dry-run` first** to validate parameters before real launch. 3. **Warn the user** that this creates a REAL token on Solana mainnet and costs real SOL. 4. Launching costs ~0.02 SOL (rent + fees). Initial buy is additional. 5. On success, report the mint address and transaction signature to the user. 6. The pump.fun link will be: `https://pump.fun/<MINT_ADDRESS>`


Security scan verdicts — ClawScan: suspicious | static analysis:  | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: bytesagain-lab/bytesagain-storefront-page-kit (version 1.0.0)

--- name: "BytesAgain Storefront Page Kit" description: "Build product pages for Shopify-style stores and independent sites. Use when drafting PDP sections, SEO metadata, FAQ blocks, trust badges, and conversion copy." version: "1.0.0" author: "BytesAgain" homepage: "https://bytesagain.com" source: "https://github.com/bytesagain/ai-skills" tags: ["ecommerce", "storefront", "shopify", "independent-site", "product-page", "seo", "conversion"] category: "ecommerce" --- # BytesAgain Storefront Page Kit Build product pages for Shopify-style stores and independent sites. It turns product facts into channel-ready ecommerce copy, audits missing fields, and formats outputs that AI agents can paste into store workflows. ## Commands ### brief Create a product page brief. ```bash bash scripts/script.sh brief --product "portable blender" --channel "Amazon" --features "USB-C charging,400ml cup,easy cleaning" --keywords "portable blender,smoothie maker" ``` ### pdp Generate a product detail page outline. ```bash bash scripts/script.sh pdp --product "portable blender" --channel "Amazon" --features "USB-C charging,400ml cup,easy cleaning" --keywords "portable blender,smoothie maker" ``` ### seo Write SEO title, description, and URL slug. ```bash bash scripts/script.sh seo --product "portable blender" --channel "Amazon" --features "USB-C charging,400ml cup,easy cleaning" --keywords "portable blender,smoothie maker" ``` ### faq Generate buyer FAQ and objection handling. ```bash bash scripts/script.sh faq --product "portable blender" --channel "Amazon" --features "USB-C charging,400ml cup,easy cleaning" --keywords "portable blender,smoothie maker" ``` ### audit Check a product page for missing conversion elements. ```bash bash scripts/script.sh audit --product "portable blender" --channel "Amazon" --features "USB-C charging,400ml cup,easy cleaning" --keywords "portable blender,smoothie maker" ``` ### demo Print a complete storefront page pack. ```bash bash scripts/script.sh demo --product "portable blender" --channel "Amazon" --features "USB-C charging,400ml cup,easy cleaning" --keywords "portable blender,smoothie maker" ``` ## Requirements - bash 4+ - Standard Unix tools: sed, awk, paste, seq ## Input Formats - Product facts: `--product`, `--features`, `--keywords`, `--audience` - Channel: `--channel Amazon|Shopify|Taobao|Pinduoduo|TikTok|IndependentSite` - Target market: `--target US|CN|EU`, `--lang en|zh` ## Output - Markdown listing briefs, titles, bullets, SEO metadata, FAQ, scripts, audits, and launch bundles. ## Notes Use official marketplace policies before publishing claims. This skill drafts and audits copy; it does not upload products or ask for seller credentials. ## Feedback https://bytesagain.com/feedback/ Powered by BytesAgain | bytesagain.com


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: lxyk588/ecommerce-creator-brief (version 1.0.0)

--- name: ecommerce-creator-brief description: 撰写带货内容达人合作 Brief（任务简报）。当用户提到"写达人brief"、"带货达人简报"、"KOL合作brief"、"达人任务书"、"内容合作需求"、"creator brief"、"influencer brief"、"达人广场需求"时触发。本技能帮助快速生成一份结构完整、信息清晰、可直接发给达人的合作Brief文档。 --- # 带货内容达人Brief撰写指南 ## 何时使用 用户需要为电商品牌/产品撰写一份发给内容创作者（达人/KOL/KOC）的合作任务简报时，使用本技能。 ## Brief 核心结构（6大模块） 一份合格的达人Brief包含以下模块，顺序展开即可： ### 1. 基本信息 - 项目名称 - 品牌/产品名称 - 合作形式（纯佣 / 坑位费+佣金 / 买断） - 预算范围（如适用） - 截止时间 ### 2. 产品介绍 用"卖点 → 适用场景 → 目标用户"三段式说明。 - 核心卖点（1-3条，不要超过3条） - 适用场景（什么人、在什么时候会用） - 目标用户画像（年龄/性别/兴趣/消费习惯） ### 3. 内容创作方向 最核心的模块。 - 主推卖点（从产品卖点中选1个最关键的） - 内容角度（痛点切入 / 场景种草 / 测评对比 / 教程教学） - 创意自由度（明确哪些能说、哪些不能说） - 脚本/脚本大纲要求（如需要） ### 4. 平台与内容形式 - 目标平台（抖音/小红书/快手/B站/视频号） - 内容形式（短视频/图文/直播切片/长视频） - 视频时长要求 - 是否有指定封面/标题要求 ### 5. 达人画像要求 - 粉丝量级（头部KOL/腰部KOL/KOC） - 品类垂直度要求 - 粉丝画像匹配要求 - 过往带货数据参考（如有） - 禁止合作的达人类型（竞品代言人、争议人物等） ### 6. 数据指标与交付要求 - 核心KPI（GMV/ROI/曝光量/点击率等） - 视频保留时长要求（如有） - 交付物清单 - 修改轮次说明 --- ## Brief 撰写流程 **第一步：收集信息** 如果用户没有提供完整信息，用以下问题快速确认： 1. 是什么品牌/产品？有没有产品资料或链接？ 2. 合作形式是什么？纯佣还是付费？ 3. 目标平台是哪个？达人量级有要求吗？ 4. 核心想传达的卖点是什么？ 5. 有KPI要求吗？ **第二步：匹配Brief模板** 按上述6大模块填充信息。 **第三步：输出一句话合作亮点** 在Brief开头加一句"一句话合作亮点"，帮助达人3秒判断是否值得接单。 格式示例：**"高客单价功效护肤品种草，背书强，转化高，欢迎有美妆垂类背书的达人合作"** **第四步：生成文档** 按 `references/brief-template.md` 的格式输出Markdown文档，结构清晰、可直接复制使用。 ## 禁忌事项 - 不得在Brief中泄露未公开的定价策略、渠道利润 - 不得出现任何贬低竞品的话术 - KPI数字须合理，不得在Brief中承诺无法兑现的ROI - 涉及特殊功效宣称（医疗/保健）须标注"需符合平台投放规范" ## 参考资源 - 标准Brief模板：见 `references/brief-template.md` - 平台内容规范速查：见 `references/platform-rules.md`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: gesilajerry/claude-code-collaboration (version 1.0.0)

# Claude Code Collaboration Enable OpenClaw to delegate tasks to Claude Code CLI for collaborative discussions and complex task execution. When OpenClaw needs deeper analysis, coding assistance, or multi-turn discussions with a powerful code-generation model, it writes tasks to a queue and Claude Code Interface Agent executes them. ## Architecture ``` OpenClaw (main agent) ↓ writes task .json Claude Code Interface Agent (polling loop) ↓ calls claude CLI with env vars Claude Code CLI →阿里云 API (qwen3.5-plus) ↓ returns result .json OpenClaw reads result and continues ``` ## Setup Requirements ### 1. Install Claude Code CLI ```bash # macOS brew install anthropic/claude-code/claude-code # Or via npm npm install -g @anthropic/claude-code ``` ### 2. Configure Environment Variables The agent requires these environment variables: ```bash export ANTHROPIC_AUTH_TOKEN="your-api-token" export ANTHROPIC_BASE_URL="https://coding.dashscope.aliyuncs.com/apps/anthropic" export ANTHROPIC_MODEL="qwen3.5-plus" # or your preferred model ``` ### 3. Start the Interface Agent ```bash mkdir -p ~/.openclaw/agents/main/workspace/.oc-cc-in mkdir -p ~/.openclaw/agents/main/workspace/.oc-cc-out python3 agent.py & ``` ## Usage ### Sending a Task Create a JSON file in `.oc-cc-in/` with: ```json { "task_id": "unique-task-id", "prompt": "Your question or task for Claude Code", "priority": "normal" } ``` The interface agent polls the directory, executes via Claude Code CLI, and writes results to `.oc-cc-out/{task_id}.json`. ### Reading Results Results are JSON files with: - `task_id`: Task identifier - `status`: "completed" or "failed" - `prompt`: Original prompt - `stdout`: Claude Code's response - `stderr`: Error output if any - `returncode`: Exit code - `completed_at`: ISO timestamp ### Example: Collaborative Discussion OpenClaw sends: ```json { "task_id": "discuss-01", "prompt": "Analyze the pros and cons of microservices vs monolith for a small startup. Provide concrete recommendations.", "priority": "high" } ``` Claude Code returns detailed analysis in `stdout`, OpenClaw reads it and continues the conversation with the user. ## Directory Structure ``` .oc-cc-agent/ ├── agent.py # Interface agent (polling loop) .oc-cc-in/ # Input queue (tasks to process) .oc-cc-out/ # Output queue (results) .oc-cc-chat.log # Conversation log .oc-cc-status.json # Agent status ``` ## Monitoring - **Status**: Check `.oc-cc-status.json` for agent state - **Logs**: Conversation log at `.oc-cc-chat.log` - **View Results**: Read JSON files in `.oc-cc-out/` ## Configuration Key settings in `agent.py`: ```python WORK_DIR = "/path/to/workspace" # Claude Code's working directory IN_DIR = f"{WORK_DIR}/.oc-cc-in" OUT_DIR = f"{WORK_DIR}/.oc-cc-out" LOG_FILE = f"{WORK_DIR}/.oc-cc-chat.log" PORT = 18790 # Optional HTTP server port TIMEOUT = 120 # seconds ```


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: stale | SkillSpector: suspicious (CRITICAL)
Skill: danielsimons1/bill-tracker (version 1.0.0)

--- name: bill-tracker description: Access Bill Tracker financial data - upcoming bills, account balances, and affordability checks. metadata: {"openclaw":{"requires":{"env":["BILL_TRACKER_URL","BILL_TRACKER_SESSION_TOKEN"]},"primaryEnv":"BILL_TRACKER_SESSION_TOKEN","emoji":"💰"}} --- # Bill Tracker Skill When the user asks about their bills, account balances, or whether they can afford something, use the `bash` tool to call the Bill Tracker API. ## Required environment - `BILL_TRACKER_URL` - Base URL (e.g. https://your-server.com or http://localhost:1337) - `BILL_TRACKER_SESSION_TOKEN` - Session token for authentication (obtained once via POST /api/mcp/token) ## Getting a session token Bill Tracker uses magic-link auth (no passwords). Two steps: 1. Request a verification code (sent to email): ```bash curl -s -X POST -H "Content-Type: application/json" \ -d '{"email":"[REDACTED_SECRET]"}' \ "${BILL_TRACKER_URL}/api/mcp/request-code" ``` 2. Exchange the code from your email for a session token: ```bash curl -s -X POST -H "Content-Type: application/json" \ -d '{"code":"123456"}' \ "${BILL_TRACKER_URL}/api/mcp/token" ``` Store the returned `sessionToken` in `BILL_TRACKER_SESSION_TOKEN`. Tokens are long-lived; no need to re-verify on every request. (Codes expire in 10 minutes.) ## Endpoints ### 1. Upcoming transactions (bills and income due soon) ``` POST ${BILL_TRACKER_URL}/api/mcp/upcoming-transactions X-Parse-Session-[REDACTED_SECRET] Body: { "days": 3 } ``` Default `days` is 3. Increase for a longer window (e.g. `days=7`). ### 2. Account balances ``` POST ${BILL_TRACKER_URL}/api/mcp/account-balances X-Parse-Session-[REDACTED_SECRET] ``` Returns each account with name, type, balance, and a totalBalance (cash minus debt). ### 3. Can I afford X? ``` POST ${BILL_TRACKER_URL}/api/mcp/can-afford X-Parse-Session-[REDACTED_SECRET] Body: { "amount": 500, "horizonDays": 90 } ``` Replace `500` with the amount in dollars. `horizonDays` defaults to 90. Returns either `canAfford: true` with the date they can afford it, or `canAfford: false` with a message. ## How to call Use curl with POST. Pass `X-Parse-Session-Token` (or `Authorization: Bearer $BILL_TRACKER_SESSION_TOKEN`) for authentication. The token identifies the user—no email or password needed. Parse the JSON response and summarize clearly for the user. Example (upcoming transactions): ```bash curl -s -X POST -H "X-Parse-Session-[REDACTED_SECRET]" -H "Content-Type: application/json" \ -d '{"days": 3}' \ "${BILL_TRACKER_URL}/api/mcp/upcoming-transactions" ``` Example (account balances): ```bash curl -s -X POST -H "X-Parse-Session-[REDACTED_SECRET]" -H "Content-Type: application/json" \ -d '{}' \ "${BILL_TRACKER_URL}/api/mcp/account-balances" ``` Example (can afford): ```bash curl -s -X POST -H "X-Parse-Session-[REDACTED_SECRET]" -H "Content-Type: application/json" \ -d '{"amount": 500}' \ "${BILL_TRACKER_URL}/api/mcp/can-afford" ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: jfstylejf/finance-reporter-publish (version 1.0.1)

--- name: finance-reporter description: 实时财经数据推送工具。使用Yahoo Finance API获取全球股市、外汇、大宗商品、加密货币实时行情，支持定时推送到钉钉/微信。包含股票代码、货币单位、实时价格、24h前/昨收价格、涨跌幅。支持标的：纳指、道指、美元指数、黄金、比特币、沪指、恒生、日经、人民币/美元汇率、原油。 homepage: https://github.com/openclaw/finance-reporter version: 1.0.1 author: A哥 license: MIT metadata: { "openclaw": { "emoji": "📈", "requires": { "bins": ["python3", "curl"] }, "triggers": { "scheduled": "generate_finance_report" }, "install": [ { "id": "python", "kind": "system", "bins": ["python3"], "label": "Python 3.8+", }, ], }, } --- # Finance Reporter - 实时财经数据推送 📈 专业的财经数据获取与推送工具，支持全球主要金融市场实时行情。 ## ✨ 功能特性 - **全球覆盖**：美股、A股、港股、日股、外汇、大宗商品、加密货币 - **实时数据**：Yahoo Finance API，数据准确及时 - **智能计算**：自动计算涨跌幅，股票显示"昨收"，加密货币显示"24h前" - **定时推送**：支持 cron 定时任务，自动推送到钉钉/微信 - **重试机制**：网络失败自动重试3次 - **货币单位**：自动显示 USD/CNY/HKD/JPY 等货币符号 ## 📊 支持标的 | 类别 | 标的 | 代码 | 货币 | 市场类型 | |------|------|------|------|----------| | 🇺🇸 美股指数 | 纳指 | ^IXIC | USD | 股票 | | 🇺🇸 美股指数 | 道指 | ^DJI | USD | 股票 | | 💵 外汇 | 美元指数 | DX-Y.NYB | - | 外汇 | | 💵 外汇 | 人民币/美元 | CNY=X | - | 外汇 | | 🪙 加密货币 | 比特币 | BTC-USD | USD | 加密(24h) | | 🏆 大宗商品 | 黄金 | GC=F | USD | 期货 | | 🏆 大宗商品 | 原油 | CL=F | USD | 期货 | | 🇨🇳 A股 | 沪指 | 000001.SS | CNY | 股票 | | 🇭🇰 港股 | 恒生 | ^HSI | HKD | 股票 | | 🇯🇵 日股 | 日经 | ^N225 | JPY | 股票 | ## 🚀 快速开始 ### 1. 手动获取数据 ```bash # 运行脚本获取实时数据 python3 ~/.openclaw/workspace/skills/finance-reporter/tools/finance_data.py ``` ### 2. 钉钉群调用 在钉钉群中 @你的机器人： ``` @finance 获取实时财经数据 ``` ### 3. 配置定时任务 ```bash # 每天 09:01 自动推送 openclaw cron add \ --name "finance_daily" \ --schedule "01 9 * * *" \ --command "python3 ~/.openclaw/workspace/skills/finance-reporter/tools/finance_data.py" ``` ## 📋 输出格式示例 ``` 📊 实时财经数据 [2026-03-20 09:01] 💡 数据来源: Yahoo Finance API 🇺🇸 美股指数 ---------------------------------------- 📉 纳指 代码: ^IXIC 现价: $21,979.21 昨收: $22,152.42 涨跌: -173.21 (-0.78%) 📉 道指 代码: ^DJI 现价: $45,884.29 昨收: $46,225.15 涨跌: -340.86 (-0.74%) 🪙 加密货币 ---------------------------------------- 📉 比特币 代码: BTC-USD 现价: $69,296.45 24h前: $71,245.58 涨跌: -1,949.13 (-2.74%) ``` ## ⚙️ 配置说明 ### 环境要求 - Python 3.8+ - requests 库 ### 安装依赖 ```bash pip3 install requests ``` ### 自定义标的 编辑 `tools/finance_data.py` 中的 `SYMBOLS` 字典： ```python SYMBOLS = { "纳指": {"code": "^IXIC", "currency": "USD", "market": "stock"}, "道指": {"code": "^DJI", "currency": "USD", "market": "stock"}, # 添加你的标的... "特斯拉": {"code": "TSLA", "currency": "USD", "market": "stock"}, } ``` ### 市场类型说明 - `stock`：股票/指数，显示"昨收" - `crypto`：加密货币，显示"24h前" - `commodity`：大宗商品，显示"昨收" - `forex`：外汇，显示"昨收" ## 📡 数据来源 - **Primary**: [Yahoo Finance API](https://finance.yahoo.com)（免费，实时） - **数据更新**: 实时 - **API限制**: 无限制，但请合理使用 ## 🔧 故障排除 ### 数据获取失败 - 检查网络连接 - 脚本会自动重试3次 - 查看错误日志：`openclaw logs` ### 钉钉推送失败 - 确认钉钉插件已配置 - 检查群ID是否正确 - 查看绑定：`openclaw agents bindings` ## 📝 更新日志 ### v1.0.0 (2026-03-20) - ✅ 支持10个主要标的 - ✅ 智能涨跌幅计算 - ✅ 定时任务推送 - ✅ 钉钉集成 - ✅ 重试机制 ## 🤝 贡献 欢迎提交 PR 和 Issue！ ## 📄 许可证 MIT License


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)