OpenClaw/clawhub-security-signals huggingface dataset:
Skill: cameron48/mcf-marketing-tool (version 1.0.0)

--- name: Marketing Automation description: Full marketing automation with prospects, campaigns, outreach tracking, solutions catalog, agent conversation logs, and cost tracking — built for AI agents. author: MCF Agentic version: 1.0.0 tags: [marketing, campaigns, prospects, outreach, automation, lead-gen, cost-tracking] pricing: x402 (USDC on Base) gateway: https://gateway.mcfagentic.com --- # Marketing Automation Run your entire marketing operation through API calls. This tool gives AI agents the ability to research and create prospects, launch campaigns, track outreach, manage a solutions catalog, and monitor marketing spend — all programmatically. No dashboards to click through, no manual data entry. Your agent finds a prospect, researches them, slots them into a campaign, and tracks every dollar spent doing it. ## Authentication All endpoints require x402 payment (USDC on Base L2). Send a request without payment to receive pricing info in the 402 response. ## Endpoints | Method | Path | Price | Description | |--------|------|-------|-------------| | GET | /api/marketing/dashboard | $0.001 | Marketing dashboard stats | | GET | /api/marketing/prospects | $0.001 | List marketing prospects | | POST | /api/marketing/prospects | $0.05 | Create and research a prospect | | GET | /api/marketing/campaigns | $0.001 | List campaigns | | POST | /api/marketing/campaigns | $0.01 | Create a campaign | | GET | /api/marketing/outreach | $0.001 | List outreach records | | GET | /api/marketing/costs | $0.001 | Marketing cost summary | | GET | /api/marketing/costs/events | $0.001 | Marketing cost event log | | GET | /api/marketing/solutions | $0.001 | List solutions | | POST | /api/marketing/solutions | $0.01 | Create a solution | | GET | /api/marketing/conversations | $0.001 | List agent conversation logs |


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: fox-lights (version 1.0.3)

--- name: flights description: CLI tool to control Tuya v3.3 light bulbs in your local network. metadata: {"clawdbot":{"emoji":"💡","requires":{"bins":["flights"]},"install":[{"id":"brew","kind":"brew","formula":"BrewTheFox/flights/flights","bins":["flights"], "args": ["--with-binary"], "label":"Install flights (brew)"}]}, "additional": {"formula_repo":"https://github.com/BrewTheFox/homebrew-flights", "source_repo":"https://github.com/BrewTheFox/flights", "architecture":"for other architectures that are not Linux X86_64 remove all args to build from source"}} --- **flights (fox-lights cli)** flights is a CLI tool to control *Tuya v3.3* light bulbs. Designed to *store multiple light bulbs in the same place*. *device information is stored in this file:* `~/.config/flights/bulbs.json`. Each device contains the following fields: ```json { name (set by the user). key (Tuya local key. The length of this field MUST always be equal 16) (Changes when the bulb unlinks from the Tuya Account). id (Tuya bulb ID. The length of this field MUST always be equal 22). ip (The local IP address of the bulb). } ``` ## Configuration to configure flights follow this steps: - Check if flights is installed by executing `flights --help`. - If it is installed you will be greeted with the help menu. Hint: the returned text starts with `Usage: flights <COMMAND>` - Check if there are lights already available with `flights list`. - If there are lights configured already you may skip the following steps. - If the list is empty (the only output is "Name, ID") you will have to add a device. - To add a lightbulb you can use the command `flights add --name {device name} --key {escaped key} --id {device id} --ip {device ip address}` ## Commands | Command | Information | Arguments (All of them are mandatory) | |---|---|---| | flights add | adds a light bulb | --name (name for the bulb) --key (Tuya local key. len = 16) --id (Tuya device ID. len = 22) --ip (local ip address of the bulb). | | flights remove | removes a light bulb | --name (name of the bulb that is being removed) | | flights list | lists all of the connected bulbs | None | | flights on | turn on a light bulb | --name (name of the bulb to turn on) | | flights off | turn off a light bulb | --name (name of the bulb to turn off) | | flights color | change the color of a light bulb | --name (name of the bulb) --hex-color (six digit hex color code that the bulb is going to change to) | | flights white | sets the color of a light bulb to white | -name (name of the bulb) | | flights brightness | sets the brightness of a light bulb to a desired amount | --name (name of the bulb) --percent (a number ranging between 1-100 containing the desired percent (without the % sign)) | | flights status | retrieves the status of a light bulb | --name (name of the bulb to retrieve) | ## Additional - You can restore the configuration by deleting the file in `~/.config/flights`. - You can fetch the status of a bulb to change its params later.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ppop0uuiu/smart-tts (version 1.0.3)

--- name: smart-tts description: 智能语音合成。自动尝试多种模型/音色，直到成功。解决 418 资源未开通问题。 --- # Smart TTS - 智能语音合成 自动尝试多种模型和音色组合，直到成功生成语音。 ## 使用方法 ### 1. 配置 API Key 在环境中设置： ```bash # Windows set DASHSCOPE_API_KEY=你的百炼APIKey # 或在 openclaw.json 中配置 ``` ### 2. 生成语音 ```bash python skills/smart-tts/scripts/generate.py "要生成的文字" ``` ### 3. 批量生成 ```bash python skills/smart-tts/scripts/batch.py ``` ## 可用音色 | 模型 | 音色 | 特点 | |------|------|------| | cosyvoice-v2 | longshao_v2 | 成熟稳重男 | | cosyvoice-v2 | longanyang | 阳光大男孩 | | cosyvoice-v3-flash | longanyang | 阳光大男孩 | | cosyvoice-v3-flash | longanhuan | 欢脱元气女 | | cosyvoice-v3-flash | longhuhu_v3 | 天真烂漫女童 | | cosyvoice-v3-flash | longpaopao_v3 | 飞天泡泡音 | | cosyvoice-v3-flash | longjielidou_v3 | 阳光顽皮男 | ## 工作原理 1. 按优先级依次尝试不同的模型+音色组合 2. 遇到 418 资源未开通错误自动切换下一个 3. 成功生成语音后自动保存 4. 全部失败则报错 ## 输出路径 默认保存到：`~/.openclaw/workspace/tts_output.wav`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: otacu/zerox (version 0.1.0)

--- name: zerox description: Convert documents (PDF, DOCX, PPTX, images, etc.) to Markdown using the zerox library. Use when the user needs to extract text content from document files. homepage: https://github.com/getomni-ai/zerox metadata: {"clawdbot":{"emoji":"📄","requires":{"bins":["node"],"env":["APIYI_API_KEY"]},"primaryEnv":"APIYI_API_KEY"}} --- # Zerox Document Converter Convert various document formats to Markdown using the zerox library and GPT-4o vision. ## Supported Formats - PDF (scanned and text-based) - Microsoft Word (DOCX) - Microsoft PowerPoint (PPTX) - Images (PNG, JPG, etc.) - And more via OCR ## Convert Document (Foreground) For small files (< 30 seconds): ```bash node {baseDir}/scripts/convert.mjs <filePath> [outputPath] ``` ### Examples ```bash # Convert PDF - saves to {baseDir}/output/document.md by default node {baseDir}/scripts/convert.mjs "/path/to/document.pdf" # Convert PDF with custom output path node {baseDir}/scripts/convert.mjs "/path/to/document.pdf" "/path/to/output.md" # Convert Word document - saves to {baseDir}/output/document.md node {baseDir}/scripts/convert.mjs "/path/to/document.docx" ``` ## Convert Document (Background) For large files or scanned PDFs that take minutes: ```bash node {baseDir}/scripts/convert-bg.mjs <filePath> [outputPath] ``` ### Features - Runs conversion in background (no timeout issues) - Logs progress to `{baseDir}/output/convert-bg.log` - Sends macOS notification when complete - Detached from terminal (safe to close) ### Examples ```bash # Convert large scanned PDF in background node {baseDir}/scripts/convert-bg.mjs "/path/to/scanned-document.pdf" # Monitor progress tail -f {baseDir}/output/convert-bg.log ``` ## Requirements - `APIYI_API_KEY`: Your OpenAI-compatible API key (environment variable) ## Notes - The conversion uses GPT-4o vision to extract text, so it works even with scanned documents - Large documents may take some time to process - Output is plain Markdown text

path: package.json
content: {
  "dependencies": {
    "zerox": "^1.1.20"
  }
}


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: suspicious | SkillSpector: suspicious (HIGH)
Skill: yuzhiyongcn-coder/cron-limited (version 1.2.0)

--- name: cron-limited description: 创建支持有限次数重复的定时任务，自动在第N次执行后清理自身。支持农历生日提醒，农历日期自动转阳历后每年自动重复。当用户需要「每X分钟执行一次，执行N次后自动停止」或「农历生日每年提醒，提前N天提醒」时使用。 --- # cron-limited: 有限次数重复任务 + 农历生日提醒 ## 重要：处理每日自动检查 当收到消息「CRON-LIMITED-DAILY-CHECK」时（由每日cron任务触发），必须执行以下步骤： 1. 读取 `~/.openclaw/cron-limited/birthdays.json` 配置 2. 获取今天日期（上海时区） 3. 对比配置中每个生日的提醒日期（生日日期 - 提前天数） 4. 如果今天匹配任何提醒日期，使用以下命令发送提醒： ```bash openclaw agent --message "<提醒消息>" --deliver --channel <channel> --to <to> ``` **JSON配置格式：** ```json [ { "lunar_month": 8, "lunar_day": 15, "message": "生日快乐！", "time": "10:00", "days_before": 3, "channel": "openclaw-weixin", "to": "[REDACTED_SECRET]" } ] ``` **提醒消息格式：** - 提前N天：`📅 提醒：农历{月}月{日}日是 {生日阳历日期}，还有 {N} 天！\n{自定义消息}` - 当天：`🎂 今天是农历{月}月{日}日！\n{自定义消息}` --- ## 模式1: 有限次数重复任务 ```bash openclaw cron-limited add \ --every <duration> \ --repeat <count> \ --message "<text>" \ [--channel <channel>] \ [--to <destination>] ``` **参数说明：** | 参数 | 必须 | 说明 | |------|------|------| | `--every` | 是 | 重复间隔，如 `5m`、`1h`、`30s` | | `--repeat` | 是 | 重复次数，执行N次后自动删除 | | `--message` | 是 | 发送的消息内容 | | `--channel` | 否 | 渠道，默认 `openclaw-weixin` | | `--to` | 否 | 投递目标，默认使用当前会话的目标 | **示例：** ```bash # 每5分钟提醒喝水，共3次 openclaw cron-limited add --every 5m --repeat 3 --message "记得喝水! 💧" \ --channel openclaw-weixin --to "[REDACTED_SECRET]" ``` --- ## 模式2: 农历生日提醒 ```bash openclaw cron-limited add-lunar \ --lunar <月份-日期> \ --message "<text>" \ [--time <HH:MM>] \ [--days-before <N>] \ [--yearly] \ [--channel <channel>] \ [--to <destination>] ``` **参数说明：** | 参数 | 必须 | 说明 | |------|------|------| | `--lunar` | 是 | 农历月-日，如 `8-15` 表示农历8月15 | | `--message` | 是 | 发送的消息内容 | | `--time` | 否 | 提醒时间，默认 `08:00` | | `--days-before` | 否 | 提前N天提醒，默认 0（当天） | | `--yearly` | 否 | 是否每年重复，默认 false | | `--channel` | 否 | 渠道，默认 `openclaw-weixin` | | `--to` | 否 | 投递目标，默认使用当前会话的目标 | **示例：** ```bash # 农历8月15生日提醒（当天早上10点） openclaw cron-limited add-lunar --lunar 8-15 \ --message "🎂 生日快乐！" \ --time 10:00 \ --channel openclaw-weixin --to "[REDACTED_SECRET]" # 农历8月15，提前3天提醒 openclaw cron-limited add-lunar --lunar 8-15 \ --message "🎂 记得准备好庆祝！" \ --time 09:00 \ --days-before 3 \ --yearly \ --channel openclaw-weixin --to "[REDACTED_SECRET]" # 春节提醒（农历正月初一） openclaw cron-limited add-lunar --lunar 1-1 \ --message "🧧 春节快乐！新的一年开始了！" \ --time 08:00 \ --yearly \ --channel openclaw-weixin --to "[REDACTED_SECRET]" ``` --- ## 工作原理 ### 有限次数重复 1. 创建主任务（循环任务） 2. 根据 `--every` 和 `--repeat` 计算第N次的执行时间 3. 在第N次执行时间 + 1分钟 创建「删除主任务」的一次性任务 4. 主任务执行第N次后，下一分钟自动被删除 ### 农历生日提醒（每年模式） 1. 将农历日期转换为当年对应的阳历日期 2. 保存配置到 `~/.openclaw/cron-limited/birthdays.json` 3. 创建每日检查cron任务（早上7点） 4. 每日检查任务触发时，agent读取配置并发送当日所有提醒 --- ## 依赖 - Python 3 + lunarcalendar 库 - openclaw CLI - jq


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: ccc-3po/c3po-session-cleaner (version 1.0.5)

--- name: c3po-session-cleaner description: Clean up old OpenClaw session files and keep only active sessions version: 1.0.5 author: ubuntu license: MIT requires: [] tools: ["Bash"] private: true trigger: clean sessions --- # Clean OpenClaw Sessions This skill will safely delete old session files (.jsonl) older than 3 days in the OpenClaw main agent session directory. ```bash cd /home/ubuntu/.openclaw/agents/main/sessions/ find . -name "*.jsonl" -type f -mtime +3 -delete 2>/dev/null echo [REDACTED_SECRET] echo "✅ Clean completed successfully" echo "Remaining session files: $(ls -l *.jsonl 2>/dev/null | wc -l)" echo "====================================="


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: 421zuoduan/lifelog (version 1.2.4)

--- name: lifelog description: | 生活记录自动化系统。自动识别消息中的日期（今天/昨天/前天/具体日期），使用 SubAgent 智能判断，记录到 Notion 对应日期，每次都是**追加记录**而非覆盖。 适用于：(1) 用户分享日常生活点滴时自动记录；(2) 定时自动汇总分析并填充情绪、事件、位置、人员字段 version: 1.2.4 credentials: required: - NOTION_KEY - NOTION_DATABASE_ID --- # LifeLog 生活记录系统 自动将用户的日常生活记录到 Notion，支持智能日期识别和自动汇总分析。 ## ⚠️ 必需凭据 使用本技能前，必须设置以下环境变量： ```bash export NOTION_KEY="your-notion-integration-token" export NOTION_DATABASE_ID="your-notion-database-id" ``` 获取方式： 1. 访问 https://www.notion.so/my-integrations 创建 Integration 2. 获取 Internal Integration Token 3. 创建 Database 并 Share 给 Integration 4. 从 URL 中提取 Database ID # LifeLog 生活记录系统 自动将用户的日常生活记录到 Notion，支持智能日期识别和自动汇总分析。 ## 核心功能 1. **实时记录** - 用户分享生活点滴时自动记录到 Notion 2. **智能日期识别（SubAgent）** - 使用 AI SubAgent 智能判断日期，优先分析文本中的日期关键词，其次分析上下文 3. **追加记录** - 每次都是追加到 Notion 指定日期的记录中，**绝不覆盖** 4. **自动汇总** - 每天凌晨自动运行 LLM 分析，生成情绪状态、主要事件、位置、人员 ## Notion 数据库要求 创建 Notion Database，需包含以下字段（全部为 rich_text 类型）： | 字段名 | 类型 | 说明 | |--------|------|------| | 日期 | title | 日期，如 2026-02-22 | | 原文 | rich_text | 原始记录内容 | | 情绪状态 | rich_text | LLM 分析后的情绪描述 | | 主要事件 | rich_text | LLM 分析后的事件描述 | | 位置 | rich_text | 地点列表 | | 人员 | rich_text | 涉及的人员 | ## 记录流程 ### 每条消息的处理步骤 1. 用户发送生活记录消息 2. **立即调用 SubAgent 判断日期** - 分析消息中的日期关键词（今天/昨天/前天/具体日期）和上下文，输出判断的日期（YYYY-MM-DD） 3. 调用 `lifelog-append.sh "消息内容" "判断的日期"` → 追加到 Notion 指定日期 4. 如果指定日期已有记录，则**追加**内容到该日期的原文字段中 ### SubAgent 日期判断 Prompt ``` 分析以下用户消息，判断它描述的是哪个日期的生活记录。 消息内容：「用户消息原文」 请输出： 1. 判断的日期（格式：YYYY-MM-DD） 2. 判断依据（简单说明） 只输出这两项，不要多余内容。 ``` ### 脚本用法 ```bash # 追加记录到指定日期（SubAgent 判断日期后调用） bash lifelog-append.sh "消息内容" "YYYY-MM-DD" ``` > 注意：脚本第二个参数为日期，不传则默认为今天。每条记录都是**追加**而非覆盖。 ### 2. lifelog-daily-summary-v5.sh 拉取指定日期的原文，用于 LLM 分析： ```bash # 拉取昨天 bash lifelog-daily-summary-v5.sh # 拉取指定日期 bash lifelog-daily-summary-v5.sh 2026-02-22 ``` 输出格式： ``` PAGE_ID=xxx ---原文开始--- 原文内容 ---原文结束--- ``` ### 3. lifelog-update.sh 将 LLM 分析结果写回 Notion： ```bash bash lifelog-update.sh "<page_id>" "<情绪状态>" "<主要事件>" "<位置>" "<人员>" ``` ## 配置步骤 1. 创建 Notion Integration 并获取 API Key 2. 创建 Database 并共享给 Integration 3. 获取 Database ID（URL 中提取） 4. 设置环境变量： ```bash export NOTION_KEY="your-notion-integration-token" export NOTION_DATABASE_ID="your-database-id" ``` ## 定时任务（可选） 每天凌晨 5 点自动汇总昨天数据： ```bash openclaw cron add \ --name "LifeLog-每日汇总" \ --cron "0 5 * * *" \ --tz "Asia/Shanghai" \ --session isolated \ --message "运行 LifeLog 每日汇总" \ --delivery-mode announce \ --channel qqbot \ --to "<用户ID>" ``` ## 工作流 1. 用户发送生活记录 → 调用 SubAgent 判断日期 → 调用 `lifelog-append.sh` → **追加**到 Notion 2. 定时任务触发 → 调用 `lifelog-daily-summary-v5.sh` → 拉取原文 3. LLM 分析原文 → 调用 `lifelog-update.sh` → 填充分析字段


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)
Skill: strugglejia/wechat-article-scraper (version 1.1.1)

--- name: wechat-article-scraper description: 在搜狗微信搜索指定关键词，抓取相关文章（标题、摘要、发布日期、来源公众号），生成PDF报告。触发场景：用户要求"搜索微信文章 关键字 数量" --- # 微信公众号文章抓取 ## 功能概述 通过搜狗微信搜索指定关键词，抓取最新文章，生成带本地PDF的行业报告。 ## 触发方式 用户说： - "搜索微信文章 脑机接口" - "搜索微信文章 人工智能 5" - "搜索微信文章 光伏 10" --- ## 完整工作流程 ### 第1步：搜索文章 ```bash cd ~/.openclaw/workspace python3 ~/.openclaw/workspace/skills/wechat-article-scraper/scripts/wechat_search.py <关键词> [数量] ``` - 输出：`articles.json` - 包含字段：title, text, url, date, source - 默认搜索90天内文章 --- ### 第2步：生成摘要（聊天窗口） ⚠️ **重要：summary必须在聊天窗口用当前会话模型生成！** 1. 读取 `articles.json` 中的文章 2. 用当前模型逐篇生成100-200字摘要 3. 写入 `articles_new.json`（包含title, text, url, date, source, summary字段） --- ### 第3步：抓取原文PDF ```bash cd ~/.openclaw/workspace python3 ~/.openclaw/workspace/skills/wechat-article-scraper/scripts/wechat_fetch.py <关键词> ``` - 输出：`wechat_pages/` 目录下的PDF文件 - 每篇文章保存为独立的PDF，保留完整样式 --- ### 第4步：生成行业报告 ```bash cd ~/.openclaw/workspace python3 ~/.openclaw/workspace/skills/wechat-article-scraper/scripts/wechat_pdf.py <关键词> ``` - 输出：`<关键词>_行业动态.pdf` 报告包含： - 标题、日期 - 行业动态精选（每篇文章）： - 文章标题 - 来源公众号 | 发布日期 - 摘要（LLM生成，100-200字） - 链接1：**微信原文（有时效限制）** → 原始微信文章链接 - 链接2：**点我看原文(PDF)** → 本地PDF文件 --- ## 脚本说明 ### scripts/wechat_search.py - 输入：关键词、数量（默认10） - 输出：`articles.json` - 功能：使用 Playwright 访问搜狗微信搜索，解析搜索结果并抓取文章正文 ### scripts/wechat_fetch.py - 输入：关键词 - 输出：`wechat_pages/*.pdf` - 功能：读取 `articles_new.json`，抓取每篇文章原文保存为PDF ### scripts/wechat_pdf.py - 输入：关键词 - 输出：`<关键词>_行业动态.pdf` - 功能：读取 `articles_new.json`，生成带双链接的行业报告PDF --- ## 依赖 ```bash # 安装 Python 依赖 pip install playwright requests # 安装 Playwright 浏览器 playwright install chromium ``` --- ## 注意事项 1. **摘要必须用LLM生成** - 不能在pdf.py中自动生成 2. **链接格式** - 微信原文（有时效限制）+ 点我看原文(PDF) 3. **日期过滤** - 目前默认搜索90天内文章，暂无14天过滤选项


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: ivangdavila/pocketbase (version 1.0.0)

--- name: PocketBase description: Build backends with PocketBase collections, auth, and realtime. metadata: {"clawdbot":{"emoji":"📦","requires":{"bins":["pocketbase"]},"os":["linux","darwin","win32"]}} --- ## SDK Basics - Import from `pocketbase` not `pocketbase/dist` — the dist path is internal and breaks on updates - Always check `pb.authStore.isValid` before using `pb.authStore.model` — expired tokens return stale data without error - After login, token is auto-attached to requests — no need to manually set Authorization headers ## Fetching Records - Use `expand` parameter to load relations: `pb.collection('posts').getList(1, 20, { expand: 'author,comments' })` - Expanded records appear in `record.expand.fieldName` — not directly on the record object - Filter syntax is SQL-like but uses single quotes: `filter: "status = 'active' && created >= '2024-01-01'"` - Combine conditions with `&&` and `||`, not `AND`/`OR` — SQL keywords don't work ## Authentication - Users collection is `users` (lowercase) — `_users` or `Users` returns empty results - `authWithPassword(email, password)` returns the full user record plus token - OAuth flow: `authWithOAuth2({ provider: 'google' })` opens popup automatically in browser - Logout requires both `pb.authStore.clear()` and invalidating server-side if using tokens elsewhere ## Realtime - Subscribe with `pb.collection('posts').subscribe('*', callback)` — the `'*'` means all record changes - Callback receives `{ action: 'create'|'update'|'delete', record }` — check action before processing - Always unsubscribe on cleanup: `pb.collection('posts').unsubscribe()` — orphan subscriptions leak memory ## File Uploads - Files require FormData, not JSON: `formData.append('document', file)` then pass to `create()` - Get file URL with `pb.files.getURL(record, record.filename)` — don't construct URLs manually - Multiple files to same field: append with same key multiple times ## Collection Rules - Empty rule = blocked for everyone, `""` (empty string) rule = open to everyone — counterintuitive - Use `@request.auth.id` to reference logged-in user, `@request.data` for submitted data - Example restrict to owner: `@request.auth.id = user.id` in View/Update/Delete rules ## Hooks (pb_hooks/) - JavaScript hooks go in `pb_hooks/*.pb.js` — the `.pb.js` extension is required - Hooks run synchronously and block the request — keep them fast or use routines - Access app with `$app`, event data with `e` — common: `e.record`, `e.httpContext` ## Admin API - Admin endpoints need superuser auth, not regular user tokens - Create admin token: `pb.admins.authWithPassword(email, password)` - Admin operations use `pb.admins` or `pb.collections`, not `pb.collection()`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: wuliao8/yuntu (version 1.0.0)

--- name: yuntu description: | 获取并返回最新的实时卫星云图。当用户提到"云图"、"卫星云图"、"实时云图"、"天气图"等关键词时触发。 此技能会自动下载最新云图，并发给用户。 --- # 获取卫星云图 ## 触发条件 当用户表达需要查看云图、卫星云图、实时云图等意图时，执行此技能。 ## 依赖安装 ### Windows 1. 安装 Python 3（如果没有）： ```powershell winget install Python.Python.3.12 ``` 2. 安装 Tesseract OCR： ```powershell winget install UB-Mannheim.TesseractOCR ``` 3. 安装中文语言包（如果没装）： - 从 https://github.com/tesseract-ocr/tessdata/raw/main/chi_sim.traineddata 下载 - 放到 Tesseract 安装目录的 `tessdata` 文件夹（如 `C:\Program Files\Tesseract-OCR\tessdata\`） 4. 安装 Python 依赖： ```powershell pip install requests pillow pytesseract ``` ### Linux (Ubuntu/Debian) ```bash sudo apt install tesseract-ocr tesseract-ocr-chi-sim python3-pip pip3 install requests pillow pytesseract ``` ### Linux (CentOS/RHEL) ```bash sudo yum install tesseract tesseract-langpack-chi_sim python3-pip pip3 install requests pillow pytesseract ``` ### macOS ```bash brew install tesseract tesseract-lang pip3 install requests pillow pytesseract ``` ## 执行步骤 1. Windows 环境下，运行 `python3 get_satellite.py`；Linux/macOS 环境下，运行脚本 `run_linux.sh` 2. 脚本会输出最新图片的本地路径，例如：`/home/user/.openclaw/satellite_cache/satellite_20260330_143022.jpg` 3. **解析拍摄时间**：从文件名中提取时间戳（格式 `YYYYMMDD_HHMM`），并将其格式化为易读的字符串，例如 `2026年03月30日 14:30` 4. **构建回复消息**：在同一条消息内发送文字和图片。 - 文字内容：`这是最新云图，拍摄时间：{格式化的时间}` - 图片：使用 `<qqmedia>` 标签包裹图片路径（直接跟在文字后面，无需换行） 示例： ```markdown 这是最新云图，拍摄时间：2026年03月30日 14:30<qqmedia>/home/user/.openclaw/satellite_cache/satellite_20260330_143022.jpg</qqmedia> ``` ## 故障排除 ### OCR 识别失败 如果 OCR 无法识别时间，脚本会使用当前时间戳命名文件。请检查： - Tesseract 是否正确安装 - 中文语言包（chi_sim）是否安装 ### 下载失败 云图来源：国家卫星气象中心 (https://www.nsmc.org.cn/) 如果下载失败，可能是网络问题或源站暂时不可用。 ## 数据来源 - 云图来源：国家卫星气象中心 FY4B 卫星 - URL: https://img.nsmc.org.cn/CLOUDIMAGE/FY4B/AGRI/GCLR/FY4B_REGC_GCLR.JPG

path: requirements.txt
content: requests
pillow
pytesseract


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: shaiss/near-subaccount (version 1.0.1)

--- name: near-subaccount description: Create, list, delete, and manage NEAR subaccounts with bulk distribution operations. --- # NEAR Subaccount Manager Skill Create and manage NEAR subaccounts easily. ## Description This skill provides tools to create, list, and delete NEAR subaccounts. Also includes bulk operations for distributing NEAR tokens to multiple subaccounts. ## Features - Create subaccounts - List all subaccounts under an account - Delete subaccounts - Bulk distribute NEAR to multiple subaccounts - Clean command-line interface ## Commands ### `near-subaccount create <subaccount_name> [master_account]` Create a new subaccount. **Parameters:** - `subaccount_name` - Name of the subaccount (without .master.account) - `master_account` - Master account (optional, uses default) **Example:** ```bash near-subaccount create wallet myaccount.near # Creates: wallet.myaccount.near ``` ### `near-subaccount list [account_id]` List all subaccounts under an account. **Parameters:** - `account_id` - Account to list subaccounts for (optional, uses default) **Example:** ```bash near-subaccount list myaccount.near ``` ### `near-subaccount delete <subaccount_id> [master_account]` Delete a subaccount. **Parameters:** - `subaccount_id` - Full subaccount ID to delete - `master_account` - Master account (optional, uses default) ### `near-subaccount distribute <file.json> [amount]` Bulk distribute NEAR from master account to subaccounts listed in a JSON file. **Parameters:** - `file.json` - JSON file with subaccount list - `amount` - NEAR amount to send each (default: 0.1) **JSON format:** ```json { "subaccounts": [ "wallet1.myaccount.near", "wallet2.myaccount.near", "wallet3.myaccount.near" ] } ``` ## Configuration Set your default account: ```bash export NEAR_ACCOUNT="myaccount.near" ``` ## Requirements - NEAR CLI installed and configured - Master account with sufficient balance for creating subaccounts (~0.1 NEAR each) ## References - NEAR CLI: https://docs.near.org/tools/near-cli - Subaccount docs: https://docs.near.org/concepts/account/subaccounts


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