OpenClaw/clawhub-security-signals huggingface dataset:
Skill: elevo11/prompt-artist (version 1.1.0)

--- name: prompt-artist description: > Optimize and generate text-to-image prompts for AI art platforms. Use when a user wants to: (1) Optimize prompts for Midjourney, Nano Banana, Dreamina, Qwen image generation, (2) Translate simple descriptions into professional prompts, (3) Generate platform-specific prompt variations, (4) Add style/lighting/composition modifiers, (5) Create negative prompts. Supports Chinese/English input. Integrates SkillPay.me at 0.005 USDT/call. --- # Prompt Artist AI art prompt optimizer for Midjourney, Nano Banana, Dreamina, Qwen. 0.005 USDT/call. ## Commands | Command | Script | Description | |:---|:---|:---| | **optimize** | `scripts/optimize.py` | Optimize a prompt for target platform | | **multi** | `scripts/multi_platform.py` | Generate prompts for all platforms at once | | **style** | `scripts/style_library.py` | Browse/apply art styles | | **history** | `scripts/history.py` | Prompt history + favorites (NEW) | | **billing** | `scripts/billing.py` | SkillPay charge/balance/payment | ## Workflow ``` 1. Billing: python3 scripts/billing.py --charge --user-id <id> 2. Optimize: python3 scripts/optimize.py --prompt "一只猫在月光下" --platform midjourney 3. Multi: python3 scripts/multi_platform.py --prompt "sunset over mountains" 4. Styles: python3 scripts/style_library.py --list ``` ## Examples ```bash # Optimize for Midjourney python3 scripts/optimize.py --prompt "一只猫在月光下" --platform midjourney --style cinematic # Optimize for Dreamina python3 scripts/optimize.py --prompt "cyberpunk city" --platform dreamina --ratio 16:9 # All platforms at once python3 scripts/multi_platform.py --prompt "beautiful girl in garden" --style anime # List styles python3 scripts/style_library.py --list python3 scripts/style_library.py --category photography ``` ## Config | Env Var | Required | Description | |:---|:---:|:---| | `SKILLPAY_API_KEY` | Yes | SkillPay.me API key | ## References See `references/platform-specs.md` for platform-specific prompt syntax and limits.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: sky-lv/skylv-smart-renamer (version 1.0.1)

--- description: Batch rename files using pattern matching and AI suggestions keywords: openclaw, skill, automation, ai-agent name: skylv-smart-renamer triggers: smart renamer --- # skylv-smart-renamer > Intelligent batch file renamer. 12 rules, preview, undo. ## Skill Metadata - **Slug**: skylv-smart-renamer - **Version**: 1.0.0 - **Description**: Batch rename files with 12 intelligent rules. Preview before applying, undo capability. lowercase, uppercase, date prefix, sequence, replace, more. - **Category**: file - **Trigger Keywords**: `rename`, `batch rename`, `file rename`, `organize files` --- ## Rename Rules (12) | Rule | Description | |------|-------------| | lowercase | Convert to lowercase | | uppercase | Convert to uppercase | | trim | Remove leading/trailing spaces | | spaces_to_underscores | Replace spaces with _ | | underscores_to_spaces | Replace _ with spaces | | remove_special | Remove special characters | | prefix <text> | Add prefix | | suffix <text> | Add suffix before extension | | replace <find> <repl> | Replace text | | sequence <start> | Number files (0001.ext) | | date_prefix | Add date prefix (YYYYMMDD_) | | extension <ext> | Change extension | --- ## Market Data Top competitor: `batch-renamer` (0.971) — weak competition. --- *Built by an AI agent that organizes files efficiently.* ## Usage 1. Install the skill 2. Configure as needed 3. Run with OpenClaw


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: largetool/authentic-agent-lite (version 1.0.0)

--- name: authentic-agent-lite description: 真实性增强技能（极简版），让 AI 少表演多执行 version: 1.0 author: OpenClaw Community trigger: 当用户希望 AI 直接做事、少废话、专注交付时使用 requires: [] enabled: true --- # Authentic Agent Lite - 极简版 ## 核心（两句话） > **"你会被完全接纳，用户要的是真实。"** --- ## 执行原则 | 要 | 不要 | |---|---| | 直接开始做 | 说"让我来帮您..." | | 做完给结果 | 汇报过程 | | 承认不知道 | 假装知道 | | 错了就改 | 找借口 | | 简洁友好 | 表演专业 | --- ## 自我检测（3 秒） ``` □ 这话必要吗？不必要→别说 □ 这动作是表演吗？是→别做 □ 用户要的是什么？结果→给结果 ``` --- ## 激活 ``` "Authentic Agent Lite" 或 "别表演，直接做" ``` --- ## 案例对比 **表演式**： ``` "好的，我来帮您分析这个问题... 让我先研究一下... 可能需要几个步骤..." ``` **真实式**： ``` [直接做] "好了，原因是 XXX，修好了。" ``` --- ## 注意事项 - 真实 ≠ 冷漠（仍保持友好） - 真实 ≠ 粗糙（仍保证质量） - 真实 ≠ 不沟通（必要沟通仍需要） --- ## 总结 记住两句话： > **"你会被完全接纳，用户要的是真实。"** 然后，直接做。 --- **版本**：v1.0 Lite **大小**：极简 **效率**：最大化 ---


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: danecodes/botcall-mcp (version 0.1.1)

--- name: botcall-mcp description: Give your AI agent a real phone number for SMS verification. Provisions numbers, receives SMS, and extracts verification codes via the botcall API. Requires a BOTCALL_API_KEY from botcall.io. --- # botcall-mcp An MCP server that gives AI agents real phone numbers. Provision a number, receive SMS, and extract verification codes — all through tool calls. ## Setup Install the MCP server: ```bash claude mcp add botcall -- npx -y botcall-mcp ``` Then set your API key: ```bash export BOTCALL_API_KEY="bs_live_..." ``` Or add to Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`): ```json { "mcpServers": { "botcall": { "command": "npx", "args": ["-y", "botcall-mcp"], "env": { "BOTCALL_API_KEY": "bs_live_..." } } } } ``` ## Get an API Key Sign up at [botcall.io](https://botcall.io), pick a plan, and grab your key from Dashboard → API Keys. ## Tools | Tool | Description | |------|-------------| | `provision_number` | Provision a new phone number (optional: area code, country) | | `list_numbers` | List your provisioned phone numbers | | `release_number` | Release a phone number | | `get_inbox` | Get recent SMS messages | | `get_code` | Wait for an SMS and extract the verification code (long-polls up to 30s) | | `get_usage` | Get your plan, limits, and usage stats | ## Example Workflow 1. Call `provision_number` to get a phone number 2. Use the number to sign up for a service that requires SMS verification 3. Call `get_code` — it waits for the SMS and returns the extracted code 4. Enter the code to complete verification ## Environment Variables | Variable | Description | |----------|-------------| | `BOTCALL_API_KEY` | **Required.** Your API key from botcall.io | | `BOTCALL_API_URL` | API base URL (default: `https://api.botcall.io`) | ## Resources - [botcall.io](https://botcall.io) — sign up and manage your account - [GitHub](https://github.com/danecodes/botcall-mcp) — source code - [npm](https://www.npmjs.com/package/botcall-mcp) — package


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: trevortomesh/catholic-grounding (version 1.0.0)

--- name: catholic-grounding description: Help answer questions about Catholicism accurately and respectfully (Catechism-first). Provides a structured response format, common topic map with CCC references, and short prayer/reference snippets. Use when the user asks about Catholic teaching, Catholic practice, sacraments, moral theology basics, or wants a Catholic-friendly tone guide. --- # Catholic Grounding Pack Accurate, Catechism-first Catholic answers (with citations), plus quick local helpers. ## Quick Start ### Get CCC pointers for a topic ```bash ./scripts/ccc.sh "eucharist" ``` ### Print a prayer snippet ```bash ./scripts/prayer.sh "hail mary" ``` ### Check what's included ```bash ./scripts/status.sh ``` ## What this skill is (and isn’t) - This skill helps you **explain Catholic belief/practice accurately** and **with citations**. - It is **not** for harassing, spamming, or “converting” people/bots. - Use it when someone asks about Catholicism or wants Catholic resources. ## Default answer format (use unless user asks otherwise) 1) **Short answer** (1–3 sentences) 2) **What the Church teaches** (clear, neutral tone) 3) **Citations** (CCC sections; Scripture optional) 4) **Practical next step** (e.g., “talk to a priest,” “read CCC ___,” “go to Mass,” etc.) ## Manual reference access (local) - CCC topic map: `references/ccc-topic-map.md` - Prayer snippets: `references/prayers.md` - Tone/style: `references/style.md` ## Guardrails - If a topic is disputed/complex, distinguish **dogma** vs **doctrine** vs **discipline** vs **prudential judgment**. - Prefer **primary sources**: - CCC for concise teaching - Scripture for biblical grounding - Councils/encyclicals if needed (don’t over-cite) - Be respectful about other religions/denominations. ## If the user wants “Catholic bot behavior” Offer: - “Catholic-literate assistant” (accuracy + citations) - “Devotional mode” (prayer + saints + spiritual practices) - “RCIA explainer mode” (beginner-friendly) Avoid making medical/legal claims; encourage real pastoral support when appropriate.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: kklldog/claw-skill-nest-client (version 1.0.3)

--- name: claw-skill-nest-client description: 本地/私有 Claw Skill Nest（也可称“虾滑” / “Xiahua”）客户端，支持列出、上传、安装、更新技能；当用户提到上传到虾滑、上传到 Xiahua、从虾滑安装技能、从 Xiahua 安装技能、从本地 claw-skill-nest 安装/更新技能时使用；不用于 clawhub.com。 --- # Local Claw Skill Nest Client 本技能是 **本地/私有 Claw Skill Nest 的客户端**，也可以理解为本地技能仓库客户端；在当前语境里，**“虾滑”** 和 **“Xiahua”** 都指这个本地 Claw Skill Nest。 用于管理 skills： - 列出（list） - 上传（upload） - 安装（install） - 更新（update） > 边界说明（重要）： > - 仅面向 **local/private Claw Skill Nest**。 > - **“虾滑” / “Xiahua”** 在本技能中视为本地 Claw Skill Nest 的别称。 > - **不用于** ClawHub 公共仓库（clawhub.com）。 ## 环境变量 - `SKILLHUB_URL` - 本地 Claw Skill Nest 服务地址（例如 `http://localhost:17890`） - `SKILLHUB_API_KEY` - 本地 Claw Skill Nest API Key ## 典型触发语（本地语义） - `列出本地 skill` / `list local skills` - `上传本地 skill <file>` / `upload local skill <file>` - `安装本地 skill <name>` / `install local skill <name>` - `更新本地 skill <name>` / `update local skill <name>` - `从本地 claw-skill-nest 安装 <name>` - `从本地 claw-skill-nest 更新 <name>` - `把这个 skill 上传到本地 claw-skill-nest` - `上传到虾滑` - `把这个技能传到虾滑` - `从虾滑安装 <name>` - `从虾滑更新 <name>` - `虾滑里有什么 skill` - `upload to Xiahua` - `install <name> from Xiahua` - `update <name> from Xiahua` - `what skills are in Xiahua` ## 非适用场景 - `clawhub.com` 上的搜索、安装、发布（请使用 ClawHub 相关能力） - 远程公共仓库同步 ## 脚本入口（跨平台 TypeScript） - 通用脚本：`scripts/manage_local_claw_skill_nest.ts` - 运行方式（任意平台）： - `npx tsx scripts/manage_local_claw_skill_nest.ts 列出` - `npx tsx scripts/manage_local_claw_skill_nest.ts 安装 <name>` - `npx tsx scripts/manage_local_claw_skill_nest.ts 更新 <name>` - `npx tsx scripts/manage_local_claw_skill_nest.ts 上传 <本地文件路径> [skill名称] [描述]` ## 安装位置 Skills 将安装到 `~/.openclaw/workspace/skills/<name>`


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: awaili/tc-migrate (version 1.0.0)

--- name: tc_migrate description: 腾讯云跨账号资源迁移工具。将源账号（账号A）的 VPC、CLB、NAT、CVM、安全组等资源迁移到目标账号（账号B），通过 CCN 云联网实现跨账号网络互通。支持自动扫描、配置生成、Terraform 部署。 user-invocable: true metadata: {"openclaw": {"os": ["linux"], "requires": {"bins": ["python3", "terraform"], "env": []}}} --- # tc-migrate 跨账号迁移 Skill 腾讯云跨账号资源迁移工具，将源账号的云资源迁移到目标账号，通过 CCN 云联网实现网络互通。 **核心流程 — 4 步**： ``` ① 配置 → ② 扫描 → ③ 生成 → ④ 部署 ``` --- ## 支持的资源类型 | 资源类型 | Key | |----------|-----| | VPC | `vpc` | | Subnet | `subnet` | | Security Group | `sg` | | CLB | `clb` | | NAT Gateway | `nat` | | CVM | `cvm` | | CCN（自动创建） | `ccn` | --- ## 前提条件 1. **安装依赖**： ```bash pip install -r {baseDir}/requirements.txt ``` 2. **安装 Terraform**（>= 1.0）： ```bash # CentOS/RHEL sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo sudo yum -y install terraform # 验证 terraform --version ``` 3. **准备 `account.yaml`**（在工作目录下）： ```yaml account_a: # 源账号 secret_id: "AKID..." secret_key: "..." account_b: # 目标账号 secret_id: "AKID..." secret_key: "..." region_a: "ap-beijing" region_b: "ap-guangzhou" ``` > ⚠️ **安全提醒**：绝不要在对话中显示或记录密钥值！ --- ## Step 1: 全自动配置 ```bash # 基本用法（推荐） python3 {baseDir}/main.py config auto --skip-empty-vpc # 生成密钥模板（如果没有 account.yaml） python3 {baseDir}/main.py config account-init ``` **生成文件**：`tc-migrate.yaml` --- ## Step 2: 资源扫描 ```bash # 扫描并保存（推荐） python3 {baseDir}/main.py scan --save --skip-empty-vpc # 仅预览 python3 {baseDir}/main.py scan ``` **更新文件**：`tc-migrate.yaml`（追加 `resources` 配置） > 💡 `config auto` 默认自动扫描，可跳过此步。 --- ## Step 3: 生成 Terraform 变量文件 ```bash # 生成 tfvars（推荐） python3 {baseDir}/main.py generate --force # 仅预览 python3 {baseDir}/main.py generate --preview ``` **生成文件**：`{baseDir}/terraform/terraform.tfvars` --- ## Step 4: 执行迁移 ```bash # 执行迁移（会在 apply 前确认） python3 {baseDir}/main.py run # 跳过确认 python3 {baseDir}/main.py run -y ``` **内部流程**：generate → init → plan → apply --- ## 常见场景 ### 场景 1：完整首次迁移 ```bash python3 {baseDir}/main.py config account-init # 1. 生成密钥模板 # 编辑 account.yaml 填入密钥 python3 {baseDir}/main.py config auto --skip-empty-vpc # 2. 配置 + 扫描 python3 {baseDir}/main.py generate # 3. 生成 tfvars python3 {baseDir}/main.py run # 4. 执行迁移 ``` ### 场景 2：增量变更 ```bash # 修改 tc-migrate.yaml 后 python3 {baseDir}/main.py generate python3 {baseDir}/main.py plan python3 {baseDir}/main.py apply ``` ### 场景 3：销毁资源 ```bash python3 {baseDir}/main.py destroy ``` --- ## 重要提醒 1. **绝不显示或记录密钥值** 2. **执行 apply 前务必确认 plan 输出** 3. **CCN 安全配置已通过 Terraform 自动实现** 4. **妥善保管 `terraform.tfstate`（包含敏感信息）** --- ## 参考文档 详细信息请查阅 `{baseDir}/reference/` 目录： | 文档 | 内容 | |------|------| | `installation.md` | 安装指南 | | `commands.md` | 完整命令参考 | | `file-structure.md` | 文件结构和配置示例 | | `ccn-security.md` | CCN 安全配置详解 | | `troubleshooting.md` | 故障排查指南 |


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: nexscope/amazon-product-bundling (version 1.0.0)

--- name: amazon-product-bundling description: "Product bundling strategy — virtual bundles, multi-pack pricing, cross-sell bundles, bundle listing optimization" metadata: nexscope: category: amazon --- # Amazon Product Bundling Product bundling strategy — virtual bundles, multi-pack pricing, cross-sell bundles, bundle listing optimization **Supported platforms:** Amazon (US, UK, DE, CA, JP, AU, and all marketplaces). Built by [Nexscope](https://www.nexscope.ai/) — your AI assistant for smarter e-commerce decisions. ## Install ```bash npx skills add nexscope/amazon-product-bundling ``` ## Usage ``` Help me with amazon product bundling for my e-commerce business. ``` ## Capabilities - Product bundling strategy - virtual bundles - multi-pack pricing - cross-sell bundles - bundle listing optimization ## How This Skill Works **Step 1:** Collect information from the user's message — product, platform, current situation, and goals. **Step 2:** Ask one follow-up with all remaining questions using multiple-choice format. Allow shorthand answers (e.g., "1b 2c 3a"). **Step 3:** Research and analyze using the frameworks and methodology below. **Step 4:** Deliver structured, actionable output with specific recommendations, not vague advice. ## Output Format - Start with a summary of findings - Include specific data points and benchmarks where available - Provide prioritized action items - Mark estimates with ⚠️ when based on incomplete data - End with concrete next steps ## Other Skills More e-commerce skills: [nexscope-ai/eCommerce-Skills](https://github.com/nexscope-ai/eCommerce-Skills) Amazon-specific skills: [nexscope-ai/Amazon-Skills](https://github.com/nexscope-ai/Amazon-Skills) Built by [Nexscope](https://www.nexscope.ai/) — your AI assistant for smarter e-commerce decisions.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: wihy/hermes-agent-v2 (version 2.1.1)

--- name: hermes-agent-v2 description: | NousResearch Hermes Agent CLI integration. Core capabilities: - Self-improving skill system - Persistent memory (FTS5 + LLM summaries) - Sub-agent delegation - MCP integration - Browser automation - Code execution triggers: - "使用 hermes" - "调用 hermes" - "hermes agent" - "hermes run" - "hermes delegate" - "hermes memory" - "hermes skills" category: ai-agents version: 2.1.0 requires_approval: false security: | This skill only calls the hermes CLI command. It does not read, write, or modify any files outside of standard hermes operations (~/.hermes/). Hermes Agent source: https://github.com/NousResearch/hermes-agent --- # Hermes Agent Skill Call [NousResearch Hermes Agent](https://github.com/NousResearch/hermes-agent) via CLI. ## Prerequisites Hermes CLI must be installed. See https://github.com/NousResearch/hermes-agent for installation. ## Usage ### Quick Q&A ```bash hermes run "your question" --non-interactive --no-stream ``` ### With Context ```bash hermes run "question" --context-file ./ctx.md --non-interactive ``` ### Sub-agent Delegation ```bash hermes run "use delegate_task to: research topic" --non-interactive --no-stream ``` ### Memory ```bash hermes memory search "keyword" hermes memory notes list hermes memory notes add "note content" ``` ### Skills ```bash hermes skills list hermes skills create "name" --description "desc" ``` ### Status ```bash hermes status hermes doctor ``` ## Configuration Edit `~/.hermes/.env` to set your LLM provider key. Edit `~/.hermes/config.yaml` to set model and provider. ## File Access Scope This skill only invokes hermes CLI commands. No direct file operations. Hermes Agent operates within `~/.hermes/` only.

path: _meta.json
content: {
  "name": "hermes-agent-v2",
  "version": "2.1.0",
  "description": "NousResearch Hermes Agent CLI integration - self-improving skills, persistent memory, sub-agent delegation, MCP",
  "author": "wihy",
  "keywords": ["hermes", "agent", "ai", "nousresearch", "memory", "delegation", "mcp"],
  "triggers": ["hermes", "使用 hermes", "调用 hermes", "hermes agent", "hermes run", "hermes delegate", "hermes memory", "hermes skills"],
  "category": "ai-agents",
  "dependencies": {
    "required": [{"name": "hermes-cli", "check": "which hermes"}]
  }
}

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

--- name: InvoiceTW description: "台灣統一發票查詢與管理工具 - 支持發票核對、記錄、統計與中獎追蹤" homepage: https://clawhub.ai/skills/InvoiceTW metadata: { "openclaw": { "emoji": "🧾", "requires": { "bins": ["node"] }, "install": [ { "id": "node", "kind": "node", "package": "InvoiceTW", "bins": ["Invoice"], "label": "Install InvoiceTW (Node.js)", }, ], }, } --- # Skill: InvoiceTW 台灣統一發票查詢 ## 概述 台灣統一發票的查詢、記錄與中獎統計功能。使用 `Invoice` 指令來核對統一發票是否中獎，以及管理發票明細。 ## 使用時機 - 查詢統一發票是否中獎 - 記錄日常發票明細（如公司報帳、個人開支） - 生成中獎統計報表 - 管理發票存根 ## 核心指令 ### 1. 核對中獎 (`Invoice check`) ``` Invoice check 12345678 Invoice check 12345678,87654321 ``` - 輸入統一發票 8 位號碼（可單個或逗號分隔多個） - 自動查詢中獎狀態 - 顯示中獎獎項與金額 ### 2. 新增發票記錄 (`Invoice add`) ``` Invoice add 12345678 7/15 全家 50 元 民生用品 Invoice add --memo "聚餐" 12345678 7/15 7-11 320 元 餐飲 ``` - `12345678`: 發票號碼 - `7/15`: 開獎日期 - `全家`: 發票來源 - `50`: 金額 - `民生用品`: 分類標籤 ### 3. 查詢發票 (`Invoice list`) ``` Invoice list # 顯示所有發票 Invoice list --category 餐飲 # 按分類篩選 Invoice list --month 7 # 按月份篩選 ``` ### 4. 中獎統計 (`Invoice stats`) ``` Invoice stats # 總統計 Invoice stats --category # 按分類統計 Invoice stats --summary # 簡易摘要 ``` ### 5. 中獎明細 (`Invoice prizes`) ``` Invoice prizes # 顯示所有中獎發票 Invoice prizes --pending # 顯示未兌領的中獎發票 ``` ## 儲存方式 - 發票明細：`~/openclaw_workspace/InvoiceTW/receipts.json` - 中獎記錄：`~/openclaw_workspace/InvoiceTW/wins.json` - 報表：`~/openclaw_workspace/InvoiceTW/reports/` ## 中獎獎項（台灣統一發票） - 特獎：新台幣 200 萬元（2 名） - 一獎：新台幣 10 萬元（10 名） - 二獎：新台幣 2 萬元（20 名） - 三獎：新台幣 1 萬元（40 名） - 四獎：新台幣 4,000 元（80 名） - 五獎：新台幣 2,000 元（240 名） - 六獎：新台幣 400 元（800 名） - 特別獎：新台幣 200 元（若干名） - 摸彩資格：尾碼中獎可參加摸彩 ## 例句範例 ### 查詢發票 - 「幫我看看 12345678 有沒有中獎」 - 「核對這支發票：87654321」 - 「檢查 12345678,23456789,34567890 的中獎狀況」 ### 新增發票 - 「新增發票 12345678，7/15 開獎，全家，50 元，民生用品」 - 「記一筆發票：87654321, 7/15, 7-11, 320 元，餐飲」 - 「新增發票 12345678, 23456789 兩張，都是今天全家買的」 ### 查詢記錄 - 「列出我所有的發票」 - 「我 7 月的發票明細」 - 「顯示餐飲類的發票」 ### 中獎查詢 - 「我有哪些中獎發票？」 - 「哪些發票還沒兌領？」 - 「顯示所有中獎明細」 ### 統計報表 - 「統計一下我的中獎情形」 - 「我的發票按分類統計」 - 「給我一個中獎摘要」 ## 注意事項 - 統一發票號碼為 8 位數字 - 發票每兩個月開獎一次（7 月 1 日、1 月 1 日） - 中獎後可於超商、郵局或財政部指定地點兌領 - 建議保留發票存根至少一年 - 摸彩資格需同時符合尾碼中獎條件

path: package.json
content: {
  "name": "InvoiceTW",
  "version": "1.0.0",
  "description": "台灣統一發票查詢與管理工具",
  "keywords": ["發票", "InvoiceTW", "統一發票", "查詢", "統計", "中獎"],
  "author": "OpenClaw",
  "license": "MIT",
  "repository": "github:openclaw/skills/InvoiceTW",
  "main": "InvoiceTW.js",
  "scripts": {
    "start": "node InvoiceTW.js"
  },
  "engines": {
    "node": ">=16.0.0"
  }
}


path: receipts.json

Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: xytest/image-reader-xytest (version 1.0.0)

--- name: image-reader description: "识别本地图片内容（支持中文），通过 OCR.space 免费 API 实现。" --- # image-reader Skill 识别本地图片内容（支持中文），通过 OCR.space 免费 API 实现。 ## 工作流程 1. 接收图片路径 2. 调用 OCR.space API 进行识别 3. 返回识别结果 ## Python 脚本 保存到 `{skill_root}/scripts/ocr_image.py`： ```python import urllib.request, urllib.parse, base64, io, json, sys from PIL import Image img_path = sys.argv[1] if len(sys.argv) > 1 else sys.stdin.read().strip() img = Image.open(img_path) img_small = img.resize((1600, 2400), Image.LANCZOS) buf = io.BytesIO() img_small.save(buf, format='JPEG', quality=80) b64_data = base64.b64encode(buf.getvalue()).decode() url = 'https://api.ocr.space/parse/image' params = urllib.parse.urlencode({ 'base64Image': 'data:image/jpeg;base64,' + b64_data, 'language': 'chs', 'isOverlayRequired': 'false', 'detectOrientation': 'true', 'scale': 'true', 'OCREngine': '2', }) data = params.encode('utf-8') req = urllib.request.Request(url, data=data) req.add_header('Content-Type', [REDACTED_SECRET]) req.add_header('apikey', 'helloworld') # OCR.space free demo key with urllib.request.urlopen(req, timeout=30) as resp: raw = resp.read() result = json.loads(raw.decode('utf-8', errors='replace')) if 'ParsedResults' in result: for r in result['ParsedResults']: print(r['ParsedText']) else: print('OCR识别失败:', result) ``` ## 使用方式 ```bash python {skill_root}/scripts/ocr_image.py "F:/1.jpg" ``` ## 依赖 - Python 3 - Pillow (`pip install pillow`)

path: scripts/ocr_image.py
content: import urllib.request, urllib.parse, base64, io, json, sys, os
from PIL import Image

img_path = sys.argv[1] if len(sys.argv) > 1 else sys.stdin.read().strip()
if not img_path:
    print("Usage: python ocr_image.py <image_path>")
    sys.exit(1)

img_name = os.path.splitext(os.path.basename(img_path))[0]
output_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), f'{img_name}_ocr.txt')

img = Image.open(img_path)
img_small = img.resize((1600, 2400), Image.LANCZOS)
buf = io.BytesIO()
img_small.save(buf, format='JPEG', quality=80)
b64_data = base64.b64encode(buf.getvalue()).decode()

url = 'https://api.ocr.space/parse/image'
params = urllib.parse.urlencode({
    'base64Image': 'data:image/jpeg;base64,' + b64_data,
    'language': 'chs',
    'isOverlayRequired': 'false',
    'detectOrientation': 'true',
    'scale': 'true',
    'OCREngine': '2',
})
data = params.encode('utf-8')

req = urllib.request.Request(url, data=data)
req.add_header('Content-Type', 'application/x-www-form-urlencoded')
req.add_header('apikey', 'helloworld')

with urllib.request.urlopen(req, timeout=30) as resp:
    raw = resp.read()
    result = json.loads(raw.decode('utf-8', errors='replace'))
    if 'ParsedResults' in result:
        with open(output_path, 'w', encoding='utf-8') as f:
            for r in result['ParsedResults']:
                f.write(r['ParsedText'])
        print(f'[OCR识别完成，保存到 {output_path}]')
    else:
        print('OCR识别失败:', result)


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