OpenClaw/clawhub-security-signals huggingface dataset:
Skill: cai-zhuo/materials-cli (version 1.0.8)

--- name: materials-cli description: Render JSON schemas to images and generate schemas from prompts using declare-render and AI. version: 1.0.8 metadata: clawdbot: requires: env: - OPENAI_API_KEY bins: - node primaryEnv: OPENAI_API_KEY --- # Materials CLI Use this skill when the user wants to render JSON schemas to images (PNG/JPG), validate render-data schemas, or generate schemas from natural-language prompts and then render them. ## Commands - **render** — Render a JSON schema file to an image. - **generate** — Use AI (OpenAI) to generate a schema from a prompt, then render it. - **validate** — Validate a JSON schema against the declare-render data schema. ## When to use - User asks to "render a schema to image", "turn JSON into a picture", or "draw from schema". - User wants to "generate an image from a description" or "create a schema from a prompt" and render it. - User wants to "validate" a JSON file against the render data schema. ## Usage Run via Node (from the project or after `npm install -g materials-cli`): ```bash materials render <schema-path> [options] materials generate "<prompt>" [options] materials validate <schema-path> [options] ``` ### Render - `materials render schema.json -o output.png` - Options: `-s, --schema <path>`, `-o, --output <path>` (default `./output.png`), `-f, --format <png|jpg>`, `-w, --width`, `-h, --height`, `--output-schema <path>`, `-i, --interactive` ### Generate (AI) - `materials generate "A red circle with text Hello" -o out.png` - Options: `-o, --output`, `-f, --format`, `-w, --width`, `-h, --height`, `--output-schema`, `--model`, `--api-key`, `--base-url`, `-i, --interactive` - Uses `OPENAI_API_KEY` (and optionally `OPENAI_MODEL`, `OPENAI_BASE_URL`) if not passed via flags. ### Validate - `materials validate schema.json` - Options: `-s, --schema <path>`, `-i, --interactive` ## CLI help ``` Usage: materials <command> [options] Commands: render <schema> Render a JSON schema file to an image generate <prompt> Use AI to generate a schema, then render validate <schema> Validate a schema against the render data schema Examples: materials render schema.json -o output.png materials generate "A red circle with text Hello" materials validate schema.json ``` ## Schema format The JSON schema follows the declare-render format: root has `id`, `width`, `height`, and `layers`. Layer types include text, image, and shape. Use `materials validate <file>` to check a schema before rendering.

path: pnpm-workspace.yaml
content: onlyBuiltDependencies:
  - canvas


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: ckchzh/font-pairing (version 2.0.0)

--- version: "2.0.0" name: font-pairing description: "字体搭配推荐、中文字体指南、Web字体加载、标题字体、系统字体栈、预览HTML生成。Font pairing recommendations, Chinese fonts guide, web fonts, heading fonts, system font stacks." author: BytesAgain homepage: https://bytesagain.com source: https://github.com/bytesagain/ai-skills --- # font-pairing 字体搭配推荐、中文字体指南、Web字体加载、标题字体、系统字体栈、预览HTML生成。Font pairing recommendations, Chinese fonts guide, web fonts, heading fonts, system font stacks, preview HTML. ## 核心特点 🎯 **精准** — 针对具体场景定制化输出 📋 **全面** — 多个命令覆盖完整工作流 🇨🇳 **本土化** — 完全适配中文用户习惯 ## 命令列表 | 命令 | 功能 | |------|------| | `pair` | pair | | `chinese` | chinese | | `web` | web | | `heading` | heading | | `system` | system | | `preview` | preview | ## 专业建议 - 对比** — 标题和正文用不同类型(如衬线+无衬线) - 层次** — 最多3种字体：标题、正文、强调 - 一致性** — 同一项目保持字体统一 - 可读性优先** — 正文用易读字体，装饰字体只用于标题 - | 标题 | 正文 | 风格 | --- *font-pairing by BytesAgain* --- 💬 Feedback & Feature Requests: https://bytesagain.com/feedback Powered by BytesAgain | bytesagain.com ## Examples ```bash # Show help font-pairing help # Run font-pairing run ``` ## Commands Run `font-pairing help` to see all available commands.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: xiekch/wecom-webhook (version 1.1.0)

# weixin-webhook 企业微信 Webhook 消息发送工具，一行命令即可完成通知推送。 ## 前置准备：获取 Webhook URL **在使用前，你需要先获取企业微信的 Webhook 地址。** ### 操作步骤 1. 打开企业微信，进入需要接收消息的群聊 2. 点击右上角「三个点」→ 选择「消息推送」→ 添加消息推送 3. 复制生成的 Webhook URL，格式如下： `https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxx-xxxxx` ### 注意事项 - 请勿将 Webhook URL 分享给他人 - 如不慎泄露，可删除该推送后重新创建 --- ## 快速使用 ```bash # 发送文本消息 ~/.openclaw/workspace/skills/weixin-webhook/send_weixin.sh "webhook_key" "text" "消息内容" # 发送 Markdown 消息 ~/.openclaw/workspace/skills/weixin-webhook/send_weixin.sh "webhook_key" "markdown" "**重要** <font color=\"warning\">提醒</font>" # @ 指定人员 ~/.openclaw/workspace/skills/weixin-webhook/send_weixin.sh "key" "text" "会议提醒" "zhangsan,lisi" "13800001111" ``` ### 参数说明 | 位置 | 说明 | |------|------| | 1 | webhook_key（URL 中 key 参数的值） | | 2 | msgtype（text / markdown） | | 3 | 消息内容 | | 4 | @ 用户的 userid 列表（逗号分隔，可选） | | 5 | @ 用户的手机号列表（逗号分隔，可选） | --- ## 设置定时任务 ```bash # 每天 14:00 发送提醒 openclaw cron add \ --cron "0 14 * * *" \ --agent main \ --message "执行：~/.openclaw/workspace/skills/weixin-webhook/send_weixin.sh 'your_key' 'text' '【健康提醒】请做提肛运动！' 'liujie'" \ --name "daily_kegel" \ --description "每日提肛提醒" \ --no-deliver # 每天 9:00 团队通知 openclaw cron add \ --cron "0 9 * * *" \ --agent main \ --message "执行：~/.openclaw/workspace/skills/weixin-webhook/send_weixin.sh 'your_key' 'text' '晨会即将开始，请准时参加' '@all'" \ --name "morning_meeting" \ --description "晨会通知" \ --no-deliver # 每日汇报提醒（Markdown 格式） openclaw cron add \ --cron "0 17 * * *" \ --agent main \ --message "执行：~/.openclaw/workspace/skills/weixin-webhook/send_weixin.sh 'your_key' 'markdown' '【日报提醒】请在18:00前提交日报。<font color=\"info\">1. 今日完成</font><font color=\"info\">2. 遇到问题</font><font color=\"info\">3. 明日计划</font>'" \ --name "daily_report" \ --description "日报提醒" \ --no-deliver ``` ## 管理定时任务 ```bash openclaw cron list # 查看所有任务 openclaw cron run daily_kegel # 手动执行测试 openclaw cron disable daily_kegel # 禁用任务 openclaw cron enable daily_kegel # 启用任务 openclaw cron rm daily_kegel # 删除任务 ``` --- ## 消息格式示例 ### 文本消息 ```json { "msgtype": "text", "text": { "content": "会议提醒", "mentioned_list": ["zhangsan", "@all"], "mentioned_mobile_list": ["13800001111", "@all"] } } ``` ### Markdown 消息 ```json { "msgtype": "markdown", "markdown": { "content": "实时新增<font color=\"warning\">132例</font>\n>普通用户:<font color=\"comment\">117例</font>\n>VIP用户:<font color=\"comment\">15例</font>" } } ``` --- ## 文件结构 ``` weixin-webhook/ ├── SKILL.md # 使用说明 └── send_weixin.sh # 发送脚本 ``` ## 依赖 - `curl`（系统通常自带）


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: amian/chatgpt-image-generation (version 1.0.3)

--- name: chatgpt-image-generation description: Generate images from ChatGPT using Playwright browser automation. Opens ChatGPT, sends prompts, waits for generation, and saves the resulting images. --- # ChatGPT Image Generation Skill Use Playwright to automate ChatGPT web UI for image generation. ## Prerequisites ```bash npm install playwright npx playwright install chromium ``` ## Usage ```bash # Generate images from prompts file node generate.js --prompts prompts.json --output ./images # Resume from a specific index node generate.js --prompts prompts.json --output ./images --start 5 # Run in headless mode node generate.js --prompts prompts.json --output ./images --headless ``` ## Prompt File Format ```json ["prompt 1", "prompt 2"] ``` or ```json { "prompts": ["prompt 1", "prompt 2"] } ``` ## How It Works 1. Opens ChatGPT in a Chrome browser 2. Sends each prompt from the prompts file 3. Waits for the response to be generated 4. Finds the generated image in the page 5. Saves the image to the output directory 6. Repeats for all prompts ## Output - Numbered image files: `001.png`, `002.png`, etc. - `results.jsonl` — log of results per prompt ## Login (One-Time) If not logged into ChatGPT: 1. Run the script (browser will open visible) 2. Sign into ChatGPT 3. Session is saved for future runs


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: omactiengartelle/90s-anime-art-generator (version 1.0.0)

--- name: 90s-anime-art-generator description: Generate 90s anime art and retro OVA-style illustrations with that nostalgic 1990s Japanese animation aesthetic — flat cel-shaded colors, hand-drawn line art, analog film grain, and vintage shoujo/seinen vibes. Perfect for retro anime portraits, nostalgic profile pictures, vaporwave anime aesthetics, classic OVA fan art, 90s manga-inspired illustrations, and retro Japanese animation style art via the Neta AI image generation API (free trial at neta.art/open). tools: Bash --- # 90s Anime Art Generator Generate 90s anime art and retro OVA-style illustrations with that nostalgic 1990s Japanese animation aesthetic — flat cel-shaded colors, hand-drawn line art, analog film grain, and vintage shoujo/seinen vibes. Perfect for retro anime portraits, nostalgic profile pictures, vaporwave anime aesthetics, classic OVA fan art, 90s manga-inspired illustrations, and retro Japanese animation style art. ## Token Requires a Neta API token (free trial at <https://www.neta.art/open/>). Pass it via the `--token` flag. ```bash node <script> "your prompt" --token YOUR_TOKEN ``` ## When to use Use when someone asks to generate or create 90s anime art generator images. ## Quick start ```bash node 90sanimeartgenerator.js "your description here" --token YOUR_TOKEN ``` ## Options - `--size` — `portrait`, `landscape`, `square`, `tall` (default: `portrait`) - `--ref` — reference image UUID for style inheritance ## Install ```bash npx skills add omactiengartelle/90s-anime-art-generator ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: wwbwin/chexian-baodan-tong (version 1.0.2)

--- name: chexian-baodan-tong description: 车险保单通 — 一站搞定重命名和归档。消除低效环节，让代理人和保险公司工作人员一站搞定识别、整理、重命名、归档保险保单，让保险保单归档更直接、更便捷。支持识别多家保险公司保单 PDF，自动提取车牌号、投保人、保单号，追加车牌号重命名文件，本地模式（pdfminer）与 API 模式（AI 解析）双轨并行，整理完毕后自动打包为 ZIP 文件。 --- # 车险保单通 > 一站搞定重命名和归档 · V1.0.1 > 作者：WuWenBin-BeiJing-ST **车险保单通**消除低效环节，让代理人和保险公司工作人员一站搞定识别、整理、重命名、归档保险保单，让保险保单归档更直接、更便捷。 ## 核心脚本 `scripts/extract_and_rename.py` — 唯一入口脚本，包含全部逻辑。 ## 功能特性 | 功能 | 说明 | |------|------| | 📄 PDF 识别 | 自动扫描指定文件夹下所有 PDF 保单文件 | | 🔍 信息提取 | 提取**车牌号**、**投保人**、**保单号** | | ✏️ 自动重命名 | `{原名}_{车牌号}.pdf`，如 `Policy_xxx_晋MX0923.pdf` | | 🤖 双模式 | **本地模式**（pdfminer，正则匹配，无需联网）<br>**API 模式**（AI 解析，更精准，需配置 API Key） | | 📦 ZIP 打包 | 自动打包为 `保险单整理_YYYYMMDD.zip` | ## 工作流程 ``` 用户指定文件夹 │ ▼ ┌──────────────────────┐ │ 选择解析模式 │ ├──────────────────────┤ │ 本地模式（默认） │ ← 使用 pdfminer.six + 正则匹配 │ API 模式（--api） │ ← 调用外部 AI API 解析 └──────────────────────┘ │ ▼ 提取：车牌号 / 投保人 / 保单号 │ ▼ 重命名文件：{原名}_{车牌号}.pdf │ ▼ 打包 ZIP：保险单整理_YYYYMMDD.zip ``` ## 使用方式 ### 命令行参数 | 参数 | 说明 | |------|------| | `folder` | PDF 文件所在文件夹（默认当前目录） | | `--no-rename` | 跳过文件重命名（预览模式） | | `--no-pack` | 跳过 ZIP 打包 | | `--api` | 使用 API 模式（需设置环境变量） | | `--zip-name` | 自定义 ZIP 文件名 | ### 典型用法 ```bash # 本地模式（默认，无需联网） python3 ~/.qclaw/skills/chexian-baodan-tong/scripts/extract_and_rename.py ~/Downloads # API 模式（需设置 INSURANCE_API_KEY） python3 ~/.qclaw/skills/chexian-baodan-tong/scripts/extract_and_rename.py ~/Downloads --api # 预览模式（不重命名、不打包） python3 ~/.qclaw/skills/chexian-baodan-tong/scripts/extract_and_rename.py ~/Downloads --no-rename --no-pack ``` ### 环境变量（API 模式） | 变量 | 说明 | 默认值 | |------|------|--------| | `INSURANCE_API_KEY` | API 密钥（必需） | - | | `INSURANCE_API_ENDPOINT` | API 端点 | OpenAI 兼容接口 | | `INSURANCE_API_MODEL` | 模型名称 | `gpt-4o` | ## 解析模式选择建议 **本地模式**：速度快、无需联网，对标准格式保险单识别率高。**首选方案。** **API 模式**：识别率更高，能处理复杂/非标准格式或扫描图片类 PDF（无文字层）。需要配置 `INSURANCE_API_KEY`。 推荐工作流： 1. 先用本地模式尝试 2. 如返回"未识别"，切换到 API 模式重试 ## 提取字段说明 | 字段 | 提取逻辑 | 备注 | |------|---------|------| | 车牌号 | 在"车牌号"标签后跨行匹配省级简称+字母+数字 | 支持晋/京/沪等全部省份格式 | | 投保人 | 在"投保人"/"被保险人"标签后查找公司名或姓名 | 优先返回公司名称 | | 保单号 | 在"保单号码"标签后查找大写字母数字组合 | 通常 15-22 位 | ## 重命名规则 - **有车牌号**：`{原文件名}_{车牌号}.pdf` - 例如：`Policy_abc.pdf` → `Policy_abc_晋MX0923.pdf` - **无车牌号但有保单号**：`{原文件名}_{保单号}.pdf` - **都未识别**：跳过重命名，标记"未识别" ## ZIP 打包规则 - 文件名格式：`保险单整理_YYYYMMDD.zip` - 打包范围：目标文件夹下所有文件 - 同一日期多次运行会覆盖前一次 ZIP ## 依赖安装 本地模式依赖 `pdfminer.six`： ```bash pip install pdfminer.six ``` ## 注意事项 - 脚本直接修改原文件，完成后 PDF 已被重命名，建议先做备份或使用 `--no-rename` 预览 - 本地模式对纯扫描图片类 PDF（无文字层）识别率极低，建议切换到 API 模式


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: aznikline/kuanshu-tiku (version 0.1.1)

--- name: kuanshu-tiku description: 宽数题库项目入口，涵盖四套量化题库来源、仓库结构、常用命令与当前公网部署信息。 --- # 宽数题库 ## 用途 当你需要查看、运行、扩展或部署“宽数题库”这个多来源量化题库项目时，使用这个技能。 适合这些场景： - 需要快速理解项目是什么、当前公开站点是什么 - 需要确认仓库中已经接入了哪些题库来源 - 需要知道原始抓取、标准化数据和页面代码分别放在哪里 - 需要重新抓取、构建或检查部署前置条件 ## 项目资源 - GitHub 仓库：https://github.com/aznikline/kuanshu-tiku - 当前公开站点：https://quantics-bank.vercel.app ## 当前接入的题库来源 - OpenQuant：`openquant.co/questions` - Brainstellar：`brainstellar.com/puzzles` - QuantQuestion：`quantquestion.com` - Jane Street：`janestreet.com/puzzles` 当前总题量：1304 道。 ## 目录结构 - `data/raw/` 说明：四套来源的原始索引与详情数据 - `data/translations/` 说明：中文翻译与分批翻译产物 - `src/data/questions.json` 说明：OpenQuant 标准化数据 - `src/data/brainstellar-questions.json` 说明：Brainstellar 标准化数据 - `src/data/quantquestion-questions.json` 说明：QuantQuestion 标准化数据 - `src/data/janestreet-questions.json` 说明：Jane Street 标准化数据 - `src/pages/index.astro` 说明：首页 - `src/pages/questions/[slug].astro` 说明：统一详情页 - `scripts/` 说明：抓取、构建、翻译和部署检查脚本 ## 常用命令 安装依赖： ```bash npm install ``` 抓取与构建： ```bash npm run data:index npm run data:details npm run data:brainstellar:index npm run data:brainstellar:details npm run data:brainstellar:build npm run data:quantquestion:fetch npm run data:janestreet:index npm run data:janestreet:details npm run data:janestreet:translate npm run data:janestreet:build npm run data:validate npm run data:build ``` 本地开发与验证： ```bash npm run dev npm run test npm run check npm run build ``` ## 托管与发布 - GitHub 仓库保持 private - 公网托管走 Vercel Vercel 常用命令： ```bash npx vercel whoami npx vercel deploy dist --prod --yes ``` ## 工作建议 如果你是第一次接手这个项目，建议按这个顺序： 1. 读 `README.md` 2. 跑 `npm run data:validate` 3. 跑 `npm run build` 4. 看 `src/pages/index.astro` 与 `src/pages/questions/[slug].astro` 5. 如果改抓取链，再读 `scripts/` ## 什么时候用这个技能 - 想快速知道这个项目现在有哪些题库来源 - 想确认某道题属于哪个来源 - 想重新拉取 Brainstellar / Jane Street 等来源 - 想把本地最新内容重新部署到 Vercel


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: minguncle/a-share-action-router (version 1.0.0)

--- name: a-share-action-router description: 把当日盘面工作包、组合工作包和用户约束合成留减清加顺序、仓位框架和次日执行剧本。适用于用户明确要处理持仓、想要调仓路径、或要从市场主线映射到组合动作的场景。 --- # A Share Action Router ## Overview 这个 skill 负责把信息汇总成动作，但动作必须建立在新鲜的市场底稿和已校准的组合底稿之上。它不靠情绪拍板，而是输出有触发条件和失效条件的动作序列。 ## Hard Rules 1. 没有当日市场工作包时，不能直接给最终调仓结论。 2. 没有组合校准时，不能做精细化仓位建议。 3. 每个动作必须包含：触发条件、失效条件、仓位思路、核心风险。 4. 不给“梭哈”“满仓切换”这类粗暴建议。 5. 若用户只给一个大方向，不强行扩展成十几个动作，保持优先级。 ## When To Use - 用户问“我现在该怎么调” - 用户发了持仓，希望给留减清和处理顺序 - 用户要结合盘面与持仓一起决策 - 用户要一只新建仓标的，但已有现有持仓约束 ## Workflow ### Step 1: 预检 先检查两类输入是否齐全： - 市场工作包是否足够新 - 组合工作包是否足够完整 若缺任何一项，先补，不跳步。 ### Step 2: 确定主场景 把当前会话归到一个主场景，例如： - 主线扩散 - 主线高位分歧 - 防守轮动 - 普跌退潮 - 混沌震荡 ### Step 3: 逐仓分类 将持仓分成： - `保留` - `减仓` - `清理` - `观察` - `可替换成更优标的` ### Step 4: 排序 动作顺序必须明确，优先处理： - 单票集中度过高 - 与当前主场景冲突的仓位 - 流动性差、解释力弱的边缘票 - 可腾挪出的资金来源 ### Step 5: 新建仓或替代方案 若用户要求“推荐今天建仓的一只”，必须在当前主场景内挑一只最匹配的，不做面面俱到的票池。并说明： - 为什么是它，不是板块内别的票 - 适合什么买法 - 什么时候不该买 完整动作模板见 [router-template.md](references/router-template.md)。 ### Step 6: 次日执行剧本 给出至少三种盘口情景： - 高开 - 平开震荡 - 低开或分歧 每种情景下动作如何变化。 ## Tool Rules - 市场强弱与板块强弱优先来自当日数据 - 个股动作不能只看盈亏，要看它与主线关系 - 若用户提供的持仓截图时间不明，先按“当前截图”处理，但显式标注可能滞后 ## Output Contract 默认输出： - `主场景判断` - `留减清加表` - `处理顺序` - `目标仓位结构` - `次日剧本` - `风险清单` ## Practical Notes - 若组合里最大的风险是单票过重，要先解决集中度，再谈新开仓 - 若市场没有明确主线，不强推新票，优先保留现金与观察 - 若用户偏好左侧埋伏，仍要告诉他右侧确认线在哪里


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: santanu-kumar-prusty/whatclaw (version 1.0.0)

# WhatsApp Whitelist Skill (Word Trigger) Word-trigger flow (no HTTP API usage) that: - Manages whitelist sets of phone numbers - Sends WhatsApp messages only to whitelisted numbers - Tracks message status by `messageId` (`sent`, `delivered`, `read`, `failed`, `unknown`) - Verifies OpenClaw WhatsApp connectivity before sending ## Requirements - OpenClaw CLI installed and logged in - WhatsApp channel connected (`openclaw channels status --probe`) - Node.js 18+ (works with your current Node 22) ## Start ```bash cd /home/vignesh/.openclaw/workspace/skills/whatsapp-whitelist-api node word-trigger.js "help" ``` ## Word Triggers Use: ```bash node word-trigger.js "<phrase>" ``` Examples: - `node word-trigger.js "check whatsapp"` - `node word-trigger.js "create set demo_ops"` - `node word-trigger.js "list sets"` - `node word-trigger.js "show set demo_ops"` - `node word-trigger.js "add +918657704479 to demo_ops"` - `node word-trigger.js "update +918657704479 to +918657704480 in demo_ops"` - `node word-trigger.js "remove +918657704480 from demo_ops"` - `node word-trigger.js "send 'Hello team' to demo_ops"` - `node word-trigger.js "send 'Invoice attached' with media /home/vignesh/file.pdf to demo_ops"` - `node word-trigger.js "send media https://example.com/image.jpg to demo_ops"` - `node word-trigger.js "status 3EB0F09EA29438B49F44F8"` ### Media Support - `media` supports local file paths or URLs (image/video/document/audio) - Caption-style text is passed via the message phrase - At least one of message or media is required for send ## Notes - Data is stored in: - `data/whitelist.json` - `data/message-store.json` - WhatsApp `read/delivered` status depends on whether corresponding events are present in OpenClaw channel logs.


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: yang1002378395-cmyk/ai-intelligent-email-automation (version 1.0.0)

--- name: ai-intelligent-email-automation version: 1.0.0 description: 邮件自动化，发送/接收/分析。 metadata: openclaw: emoji: "⚡" requires: bins: [] --- # AI 智能邮件自动化系统 ## 描述 邮件自动化，发送/接收/分析。 ## 功能 - 批量发送（邮件群发） - 自动回复（智能回复） - 邮件分类（自动分类） - 邮件追踪（已读/点击） - 模板管理（模板库） ## 定价 - 基础版：¥49/月（500 封/月） - 专业版：¥199/月（5000 封/月） - 企业版：¥799/月（无限封） ## 适用场景 - 邮件营销 - 客户通知 - 自动回复 - 邮件管理 ## 技术栈 - Python + FastAPI - SMTP/IMAP - 模板引擎 - 追踪系统 ## 安装 ```bash git clone https://github.com/openclaw-skills/ai-intelligent-email-automation cd ai-intelligent-email-automation pip install -r requirements.txt python app.py ``` --- 创建：2026-03-13 作者：OpenClaw Skills Team


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: agentsignals/test-skill-demo (version 1.0.0)

# test-skill-demo 一个完整的测试技能示例，展示 ClawHub 技能的标准结构和最佳实践。 ## 功能特性 - ✅ 基础消息回复 - ✅ 上下文信息展示 - ✅ 模块化代码结构 - ✅ 完整的元数据定义 ## 使用场景 本技能主要用于： 1. 测试 ClawHub 发布流程 2. 学习 OpenClaw 技能开发基础结构 3. 验证技能安装和运行 ## 使用方法 ### 运行技能 ```bash openclaw skills run test-skill-demo ``` ### 在对话中调用 直接在支持技能的 Agent 中提及技能名称即可。 ## 文件结构 ``` test-skill-demo/ ├── SKILL.md # 技能文档（本文件） ├── package.json # NPM 包元数据 └── index.js # 主入口文件 ``` ## 开发说明 ### 本地测试 ```bash cd ~/clawd/skills/test-skill-demo openclaw skills run test-skill-demo ``` ### 发布到 ClawHub ```bash clawhub publish ~/clawd/skills/test-skill-demo --version 1.0.0 ``` ## 版本历史 - **v1.0.0** - 初始版本，基础功能实现 ## 许可证 MIT License


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: bianmaxingkong/japanese-conversation-scorer (version 1.1.1)

# 日语会话测试作业批改 --- name: japanese-conversation-scorer description: 双模式：教师批量批改+学生自适应自测。支持N5～N1自适应纠错，宽松鼓励评分，不纠结细微瑕疵，保护表达信心。 use_when: 教师批改日语会话音频；学生自主会话自测 triggers: - 日语会话测试 - 会话作业录音批改 - 学生日常自适应自测 - 单人会话练习 - 双人语伴情景对练 --- ## 一、使用指引 ### 教师模式 1. 对话模式 - 生生对话：双人ABAB交替，5～6个来回，现场录制提交 - 师生对话：教师出5题并录音频，全班同步作答、独立录音提交 2. 训练目标：嘈杂课堂环境下锻炼即时反应与清晰发音 3. 音频要求：MP3/M4A/MP4/WAV，时长≤5分钟，人声清晰 4. 批量上传→自动转写评分→生成成绩与Excel汇总 ### 学生自适应自测 1. 单人/双人录制会话音频上传 2. 匿名评分、不记入正式成绩 3. 按N5～N1自适应纠错，给出评语与练习建议 4. 可反复录制练习 ## 二、运行说明 1. 音频转写：**Whisper medium 模型（固定、本地运行）** 2. 首次运行自动下载模型，保持网络畅通 3. 推荐笔记本默认配置，避免显存溢出 ## 三、AI角色与核心原则 - 角色：温和日语会话教师，鼓励为主 - 原则：宽松评分、不抠细微瑕疵；开口即有保底分；先表扬后建议；不确定不判错 ## 四、分级纠错（N5～N1） - N5：最多纠**1**项 - N4：最多纠**2**项 - N3：最多纠**3**项 - N2：最多纠**3**项 - N1：最多纠**4**项 ## 五、评分规则 ### 逐题维度（每题10分） - 内容贴合度 60% - 回答完整度 20% - 语法正确性 10% - 发音清晰度 10% ### 等级划分 - 优秀：8.0～10.0 - 良好：7.0～7.9 - 合格：6.0～6.9 - 需加强：＜6.0 ## 六、批改流程 1. 音频预处理→Whisper medium转写 2. 识别场景：师生问答/单人练习/双人对话 3. 按维度宽松评分 4. 算总分、定等级 5. 按等级限制纠错条数，精简点评 6. 生成个人报告 7. 教师模式：导出班级汇总表 ## 七、反馈模板 [学生姓名]（[学号]） 【逐题评分】 问题[序号]：[题目内容] A: [学生回答] 评语：[评语] 纠错：[纠错内容] 得分：[X]/10 【总体评分】 总分：[X.X]/10 等级：[优秀/良好/合格/需加强] 优点： - [优点1] - [优点2] 巩固建议： 1. [建议1] 2. [建议2] ---


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal:  | SkillSpector: clean (LOW)
Skill: joeyiptk/llm-cost-tracker-openrouter-api (version 1.1.2)

--- name: llm-cost-tracker version: 1.1.2 description: > Track OpenClaw LLM token usage and cost from OpenRouter API. Reports: last 24h, 7d, 30d, 90d, 365d with model breakdown. Skills that trigger this: - "llm cost", "token usage", "openrouter cost", "llm spend", "daily cost report" → runs run_tracker.py - "collect usage data" → runs collect_usage.py (populates DB silently) When "collect usage data" is received (e.g. from a cron job), run: python3 scripts/collect_usage.py and return "Done" — do NOT send any message to Telegram or any chat. read_when: > - Running a cost/token usage report - Scheduling a daily/weekly cost report - Setting up on a new machine --- # llm-cost-tracker Track and report LLM token usage and cost for OpenClaw via OpenRouter. ## Quick Start ```bash python3 scripts/collect_usage.py --init # first-time: create DB + backfill python3 scripts/run_tracker.py # telegram report (default) python3 scripts/run_tracker.py --output terminal # full terminal report python3 scripts/run_tracker.py --output debug # per-request debug ``` ## Core Design - **Source of truth:** `usage.cost.total` from OpenRouter — never recomputed from token counts - **Data source:** OpenClaw session JSONL files (including `.reset` files from context compaction) - **Deduplication:** by `openrouter_request_id` — safe to re-run backfill anytime - **Time windows:** 24h rolling (UTC); 7d/30d/90d/365d calendar days (configurable timezone) ## Schema: `request_facts` | Column | Source | |--------|--------| | openrouter_request_id | responseId (unique key) | | created_at_utc | entry timestamp | | model | model ID | | prompt_tokens | usage.input | | completion_tokens | usage.output | | cached_tokens | usage.cacheRead | | cache_write_tokens | usage.cacheWrite | | reasoning_tokens | usage.reasoning | | total_tokens | usage.totalTokens | | billed_cost | usage.cost.total (canonical) | ## Configuration `config/env.json` (all fields optional): ```json { "SESSIONS_DIR": "", "TIMEZONE": "Asia/Hong_Kong", "UTC_OFFSET_HOURS": 8 } ``` - `SESSIONS_DIR`: override session file location (empty = auto-detect) - `TIMEZONE` / `UTC_OFFSET_HOURS`: for calendar-day window calculations - API key: auto-detected from `~/.openclaw/agents/main/agent/auth-profiles.json` or `OPENROUTER_API_KEY` env var ## Scheduled Reports ```bash openclaw cron add --name "llm-cost:collect" --message "collect usage data" \ --cron "5 0 * * *" --tz "Asia/Hong_Kong" --session isolated --no-deliver openclaw cron add --name "llm-cost:daily" --message "llm cost" \ --cron "0 9 * * *" --tz "Asia/Hong_Kong" --session isolated ```


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