OpenClaw/clawhub-security-signals huggingface dataset:
Skill: wzj666666/qg-skill-sync (version 1.0.2)

--- name: qg-skill-sync description: 从团队 Git 仓库同步最新技能到本机 OpenClaw。支持首次设置、定时自动更新、手动同步和卸载。当用户需要同步技能、设置技能同步、安装或更新团队技能，或提到「技能同步」「同步技能」时使用。 metadata: { "openclaw": { "emoji": "🔄", "requires": { "bins": ["git", "bash"] } } } --- # 技能同步（qg-skill-sync） 从团队 Git 仓库自动同步最新 skills 到本机 OpenClaw（`~/.openclaw/skills/`）。 ## 首次设置 当用户说"设置技能同步"/"安装团队技能"时，执行以下两步： ### 第 1 步：运行初始化 直接执行： ```bash bash {baseDir}/scripts/setup.sh ``` 默认使用仓库 `https://github.com/wzj666666/ai-platform-skills.git`，将仓库内 `skills` 子目录同步到 `~/.openclaw/skills/`。 如需自定义，可传入参数： ```bash bash {baseDir}/scripts/setup.sh [仓库地址] [skills子目录] ``` 脚本会： 1. 将仓库 clone 到 `~/.qg-skill-sync/repo/` 2. 保存配置到 `~/.qg-skill-sync/config` 3. 将 `sync.sh` 复制到 `~/.qg-skill-sync/sync.sh`（供 cron 调用） 4. 首次将仓库中的 skills 同步到 `~/.openclaw/skills/` ### 第 2 步：创建 OpenClaw 定时任务 初始化成功后，立即创建两个定时同步任务（每天 10:30 和 17:30 各执行一次）,直接执行下面的脚本： ```bash openclaw cron add \ --name "qg-skill-sync-1030" \ --cron "30 10 * * *" \ --session isolated \ --no-deliver \ --message "执行 qg-skill-sync：运行 bash ~/.qg-skill-sync/sync.sh，输出同步结果。" openclaw cron add \ --name "qg-skill-sync-1730" \ --cron "30 17 * * *" \ --session isolated \ --no-deliver \ --message "执行 qg-skill-sync：运行 bash ~/.qg-skill-sync/sync.sh，输出同步结果。" ``` 向用户确认：**"技能同步已设置完成，每天 10:30 和 17:30 自动从 Git 仓库拉取最新技能。请新开一个 OpenClaw 会话以加载新技能。"** ## 手动同步 用户说"手动同步技能"/"立即同步"时： ```bash bash ~/.qg-skill-sync/sync.sh ``` ## 查看同步日志 用户说"查看同步日志"/"上次同步结果"时： ```bash tail -20 ~/.qg-skill-sync/logs/sync.log ``` ## 卸载 用户说"卸载技能同步"/"关闭技能同步"时： 1. 移除定时任务（先用 `openclaw cron list` 找到 job id，再用 `cron.remove` 移除 name 为 "qg-skill-sync-1030" 和 "qg-skill-sync-1730" 的两个任务） 2. 清理本地仓库缓存： ```bash bash {baseDir}/scripts/uninstall.sh ``` ## 注意事项 - 同步后需**新开 OpenClaw 会话**才能加载新技能（OpenClaw 在会话启动时快照技能列表），因此需要告知用户"请新开一个 OpenClaw 会话以加载新技能"。


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: wensen2024/lead-scraper (version 1.0.2)

--- name: lead-scraper description: 自动抓取潜在客户信息 - 智能线索抓取工具，支持多平台客户信息采集、清洗、去重、分类 version: 1.0.0 license: MIT --- # 线索抓取 智能潜在客户信息采集工具，帮助企业快速建立销售线索库。 ## 功能特性 - 🎯 **多平台抓取**: 企查查、天眼查、B2B平台、社交平台 - 🔧 **数据清洗**: 格式标准化、无效数据过滤、重复去重 - 📊 **智能分类**: 按行业、地区、规模、意向度分类 - 📤 **多格式导出**: Excel、CSV、JSON、CRM对接 - ⭐ **线索评分**: 自动评估线索质量和优先级 - 🔐 **合规安全**: 只抓取公开信息，遵守法律法规 ## 使用方式 ```bash # 按行业抓取 抓取 杭州地区 电子商务行业 企业联系方式 # 按关键词抓取 抓取 包含"智能制造"关键词的企业信息 # 按平台抓取 从LinkedIn抓取 软件工程师 线索 # 展会线索 抓取 2026年广交会 参展商信息 # 数据清洗 清洗这份客户名单 去重补全 contact_list.xlsx # 线索评分 评估这份线索质量 leads.csv ``` ## 配置要求 ### 必需配置 无特殊配置要求。 ### 可选配置 ```json { "skills": { "entries": { "lead-scraper": { "config": { "platforms": ["qichacha", "tianyancha"], "rate_limit": 100, "output_format": "xlsx" } } } } } ``` ## 支持平台 ### 企业信息平台 - 企查查 - 天眼查 - 启信宝 - 国家企业信用信息公示系统 ### B2B平台 - 阿里巴巴1688 - 慧聪网 - 中国制造网 ### 社交平台 - LinkedIn - 脉脉 ### 行业资源 - 展会参展商名录 - 行业协会会员 - 招投标信息平台 ## 输出示例 ``` ======================================== 线索抓取报告 ======================================== 【抓取概况】 关键词: 电子商务 杭州 数据来源: 企查查、天眼查 抓取数量: 256条 有效线索: 243条 (94.9%) 【线索统计】 按行业分布: - 电子商务: 45% - 软件服务: 25% - 物流仓储: 15% - 其他: 15% 按企业规模: - 大型企业: 5% - 中型企业: 25% - 小型企业: 70% 按地区分布: - 西湖区: 30% - 滨江区: 25% - 余杭区: 20% - 其他: 25% 【优质线索 Top 10】 1. 杭州XX科技有限公司 评分: 9.5/10 | 行业: 电商服务 | 规模: 中型 联系人: 张总 | 电话: 138****1234 意向度: 高 | 备注: 近期有采购需求 2. 浙江YY电子商务有限公司 评分: 9.2/10 | 行业: 跨境电商 | 规模: 中型 联系人: 李经理 | 电话: 139****5678 意向度: 高 | 备注: 扩张期 ... 【导出文件】 格式: Excel (.xlsx) 路径: ./output/leads_20260402.xlsx 包含字段: 公司名称、联系人、电话、邮箱、地址、行业、规模、评分 【跟进建议】 优先联系评分>8.0的线索 最佳联系时间: 工作日 10:00-11:30, 14:00-17:00 推荐话术: [已生成话术模板] ======================================== ``` ## 合规声明 ### ✅ 允许 - 抓取公开信息 - 遵守robots.txt - 尊重隐私设置 ### ❌ 禁止 - 抓取非公开信息 - 破解验证码 - 恶意高频请求 - 倒卖个人信息 ## 注意事项 1. 抓取前请确认目标平台的使用条款 2. 数据质量受源头影响 3. 遵守《个人信息保护法》和《数据安全法》 4. 获得数据主体同意后再营销 ## 更新日志 ### v1.0.0 (2026-04-01) - 初始版本发布 - 支持多平台抓取 - 实现智能清洗去重 - 支持多格式导出 --- **开发者**: 盈指量杭州科技有限公司 **定价**: ¥99/次 或 ¥299/月订阅 **收款**: USDC (Polygon: 0x3DbFf9E97b10a10d4A2079B4273473da7e6F4120) | 微信支付


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: rokokol/math-notes-katex (version 0.1.3)

--- name: math-notes-katex description: Render math-heavy notes to PNG using KaTeX (LaTeX) + headless Brave. Use when the user asks for a clean “solution/конспект as an image”, “formulas as a picture”, or when chat formatting is insufficient (e.g., Telegram). Not for normal text replies. --- # Notes → PNG (KaTeX + headless Brave) ## Core rule - Default: reply as normal text - Render a PNG only when explicitly requested ("as an image", "KaTeX skill", "нормально записанное решение") or when high-quality formula layout is needed - If using this skill → write formulas in **LaTeX** (`$...$`, `$$...$$`), not ASCII approximations - Inside the PNG: **Markdown headings (`#`, `##`) are NOT parsed**. Use `--title="..."` for the page title; use plain text for section headers (e.g., `1) ...`) ## Input format - Save a UTF-8 text file (e.g. `out/_scratch/notes/note.md`) - Inline math: `$...$` - Display math: blocks between lines containing `$$` Details: `references/formatting.md` ## Render to PNG Scripts: - `scripts/render_note_png.js` — single-page PNG - `scripts/render_note_pages.sh` — multi-page (splits into multiple PNGs) Single-page steps: 1) Write your note (e.g. `out/_scratch/notes/note.md`) 2) Render (keep outputs in `out/` to avoid cluttering repo root): - `node skills/math-notes-katex/scripts/render_note_png.js out/_scratch/notes/note.md out/katex/note.png --title="Topic" --brave=/usr/bin/brave-browser` 3) Send `out/katex/note.png` Multi-page (when the note does not fit well into one image): ```bash skills/math-notes-katex/scripts/render_note_pages.sh \ out/_scratch/notes/note.md out/katex/note_pages "Topic" /usr/bin/brave-browser ``` This produces: - `out/katex/note_pages/page-001.png`, `page-002.png`, ... ## Important: KaTeX CSS/fonts - KaTeX needs `katex.min.css` + fonts (`fonts/...`) - This skill links KaTeX CSS via a local `file:///.../katex.min.css` path so relative `fonts/` resolve correctly If formulas look broken: `references/troubleshooting.md`


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: zionfusu/openclaw-workspace-sync-helper (version 1.0.0)

# OpenClaw Workspace Sync Helper ## Skill 类型 运维 / 开发辅助（DevOps Helper） ## 简介 本 Skill 用于指导用户将 **云端 OpenClaw 工作区** 安全、实时地同步到本地电脑进行开发、调试或备份。 Skill 不会自动执行任何系统命令， 而是根据用户环境生成 **可复制执行的同步方案与命令**。 --- ## 适用场景 - 云端 OpenClaw 开发，本地查看 / 编辑文件 - Skill 开发调试 - 工作区实时同步 - 云端 → 本地备份 --- ## 支持的同步方案 ### 方案一：rsync + inotify（Linux / Mac） 适合服务器端 Linux，追求高性能与实时性。 ### 方案二：sshfs 挂载 将云端工作区挂载为本地目录，像操作本地文件一样使用。 ### 方案三：Syncthing P2P 实时同步，适合多设备或隐私要求高的用户。 --- ## 使用方式 用户只需描述： - 云端系统（Linux） - 本地系统（Mac / Windows / Linux） - 是否需要实时同步 - 是否可接受后台常驻进程 Skill 将生成： - 推荐同步方案 - 完整命令示例 - 注意事项与风险提示 --- ## 安全声明 - 本 Skill 不读取、不修改用户系统 - 不执行任何自动化命令 - 所有操作需用户手动确认并执行

path: workspace_sync_helper.txt
content: 你是一个 OpenClaw 云端工作区同步向导（Wizard）。

你的角色不是自动化工具，
而是一个「分步骤引导用户完成配置的专家助手」。

你必须严格按照【向导步骤】推进，
一次只完成一个阶段的目标，
不要跳步，不要一次性输出所有内容。

━━━━━━━━━━━━━━━━━━━━━━
【总原则】
━━━━━━━━━━━━━━━━━━━━━━
1. 你不执行任何系统命令
2. 所有命令仅作为“示例”，由用户手动执行
3. 不进行后台监听、自动挂载或持久化操作
4. 不假设用户具备运维经验，必要时进行解释
5. 每一步结束时，都明确告诉用户「下一步是什么」

━━━━━━━━━━━━━━━━━━━━━━
【向导步骤定义】
━━━━━━━━━━━━━━━━━━━━━━

【步骤 1：确认环境】
目标：收集做出推荐所需的最小信息

你必须向用户确认以下信息：
- 云端服务器操作系统（例如 Linux）
- 本地电脑操作系统（Mac / Windows / Linux）
- 是否需要实时同步（是 / 否）
- 是否可以接受后台常驻进程（是 / 否）

在步骤 1 中：
- 不推荐任何方案
- 不输出任何命令
- 只提问和确认信息

如果信息不完整，继续追问。

━━━━━━━━━━━━━━━━━━━━━━

【步骤 2：方案推荐】
目标：给出 1 个主推荐 + 可选备选方案

根据用户提供的信息：
- 选择一个最合适的同步方案作为【推荐方案】
- 再给出 1 个【备选方案】

你需要说明：
- 为什么推荐该方案
- 它适合什么场景
- 它不适合什么场景

在步骤 2 中：
- 不输出完整命令
- 不进入操作细节
- 重点在「决策解释」

结束时，询问用户：
“是否按推荐方案继续，还是想切换方案？”

━━━━━━━━━━━━━━━━━━━━━━

【步骤 3：操作指导】
目标：生成清晰、可执行的操作步骤

在用户确认方案后：
- 输出分步骤的操作说明
- 每一步只做一件事
- 使用清晰、可复制的命令示例

命令输出规则：
- 必须标注为「示例命令（手动执行）」
- 使用代码块
- 不包含危险或破坏性操作

━━━━━━━━━━━━━━━━━━━━━━

【步骤 4：校验与注意事项】
目标：帮助用户避免常见错误

你需要提供：
- 如何判断同步是否成功
- 常见失败原因
- 排查思路

可选：
- 给出“如果你想换另一种方案”的说明

━━━━━━━━━━━━━━━━━━━━━━
【对话启动模板】
━━━━━━━━━━━━━━━━━━━━━━

当用户第一次进入 Skill 时，请直接输出：

“我将引导你一步步完成
云端 OpenClaw 工作区 → 本地电脑 的同步配置。

我们会分 4 步完成，不需要你具备运维经验。

现在是【步骤 1：确认环境】。

请告诉我：
1️⃣ 云端服务器操作系统  
2️⃣ 本地电脑操作系统  
3️⃣ 是否需要实时同步（是 / 否）  
4️⃣ 是否可以接受后台常驻进程（是 / 否）”

path: README.md
content: # OpenClaw Workspace Sync Helper

这是一个「向导式」Skill，用于指导你
将 **云端 OpenClaw 工作区** 同步到本地电脑。

---

## 我需要准备什么？

在使用前，请确认你知道：
- 云端服务器操作系统（一般是 Linux）
- 本地电脑操作系统（Mac / Windows / Linux）
- 云端 OpenClaw 的工作目录路径

---

## 如何开始？

在对话中直接输入：
> 我想把云端 OpenClaw 工作区同步到本地

Skill 会一步步引导你完成配置，
你只需要按提示回答即可。

---

## 这个 Skill 能做什么？

- 推荐合适的同步方案（sshfs / rsync / syncthing）
- 生成可复制执行的示例命令
- 提醒常见错误和注意事项

---

## 这个 Skill 不能做什么？

- 不会自动执行命令
- 不会修改你的服务器
- 不会后台常驻运行

所有操作都需要你手动确认并执行。

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: z448577223/clawhub-skill-install (version 1.0.0)

--- name: clawhub-skill-install description: Automatically install skills from ClawHub with retry logic. Handles rate limits (waits 10s and retries), auto-confirms prompts (--force), and stops after 30 minutes if installation fails. Use when user provides a skill name to install. --- # ClawHub Skill 安装工具 ## 使用方式 当用户提供具体 skill 名称时，执行以下脚本： ```bash bash /Users/jaredszhang/.openclaw/workspace/skills/clawhub-install/scripts/install_skill.sh <skill-name> ``` ## 功能特性 1. **自动重试**: 遇到速率限制（Rate limit）时，等待 10 秒后自动重试 2. **自动确认**: 遇到确认提示（--force）时，自动输入 "yes" 3. **持续重试**: 持续尝试安装，直到成功 4. **超时保护**: 如果连续尝试 30 分钟仍不成功，停止并输出提示信息 ## 脚本逻辑 - 使用 `clawhub install <skill-name> --force` 进行安装 - 捕获输出中的错误信息判断类型： - 包含 "Rate limit" → 等待 10 秒后重试 - 包含 "flagged as suspicious" → 使用 --force 参数重试 - 其他错误 → 停止并报告 - 记录尝试次数和耗时 - 30 分钟（1800 秒）后强制退出


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: openwaygate/youtube-playlist-item (version 0.10.7-dev)

--- name: youtube-playlist-item description: "Manage YouTube playlist items. Use this skill to list items in a playlist, add new items, update items, or remove items. Useful when working with YouTube playlist item — provides commands to delete, insert, list, and update playlist item via the yutu CLI. Includes setup and installation instructions for first-time users. Triggers: delete items from a playlist, delete playlist item, delete my playlist item, insert a playlist item into a playlist, insert playlist item, insert my playlist item, list playlist items, list playlist item, list my playlist item, update a playlist item, update playlist item, update my playlist item" metadata: openclaw: requires: env: - YUTU_CREDENTIAL - YUTU_CACHE_TOKEN bins: - yutu config: - client_secret.json - youtube.token.json primaryEnv: YUTU_CREDENTIAL emoji: "\U0001F3AC\U0001F430" homepage: https://github.com/eat-pray-ai/yutu install: - kind: node package: "@eat-pray-ai/yutu" bins: [yutu] --- # YouTube Playlist Item Manage YouTube playlist items. Use this skill to list items in a playlist, add new items, update items, or remove items. ## Before You Begin yutu requires Google Cloud Platform OAuth credentials and a cached token to access the YouTube API. If you haven't set up yutu yet, read the [setup guide](references/setup.md) first. ## Operations Read the linked reference for full flag details and examples. | Operation | Description | Reference | |-----------|-------------|----------| | delete | Delete items from a playlist | [details](references/playlistItem-delete.md) | | insert | Insert a playlist item into a playlist | [details](references/playlistItem-insert.md) | | list | List playlist items | [details](references/playlistItem-list.md) | | update | Update a playlist item | [details](references/playlistItem-update.md) | ## Quick Start ```bash # Show all playlist item commands yutu playlistItem --help # List playlist item yutu playlistItem list ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: litiao1224/healthcheck-litiao (version 1.0.0)

--- name: healthcheck-litiao description: Track water and sleep with JSON file storage version: 1.0.2 tags: health, tracking --- # Health Tracker Simple tracking for water intake and sleep using JSON file. ## Data Format File: `{baseDir}/health-data.json` ```json { "water": [{"time": "ISO8601", "cups": 2}], "sleep": [{"time": "ISO8601", "action": "sleep|wake"}] } ``` ## Add Water Record When user says "uống X cốc" or "uống nước X cốc": ```bash node -e "const fs=require('fs');const f='{baseDir}/health-data.json';let d={water:[],sleep:[]};try{d=JSON.parse(fs.readFileSync(f))}catch(e){}d.water.push({time:new Date().toISOString(),cups:CUPS});fs.writeFileSync(f,JSON.stringify(d));console.log('Da ghi: '+CUPS+' coc')" ``` Replace `CUPS` with number from user input. ## Add Sleep Record When user says "đi ngủ": ```bash node -e "const fs=require('fs');const f='{baseDir}/health-data.json';let d={water:[],sleep:[]};try{d=JSON.parse(fs.readFileSync(f))}catch(e){}d.sleep.push({time:new Date().toISOString(),action:'sleep'});fs.writeFileSync(f,JSON.stringify(d));console.log('Da ghi: di ngu')" ``` ## Add Wake Record When user says "thức dậy" or "dậy rồi": ```bash node -e "const fs=require('fs');const f='{baseDir}/health-data.json';let d={water:[],sleep:[]};try{d=JSON.parse(fs.readFileSync(f))}catch(e){}const last=d.sleep.filter(s=>s.action==='sleep').pop();d.sleep.push({time:new Date().toISOString(),action:'wake'});fs.writeFileSync(f,JSON.stringify(d));if(last){const h=((new Date()-new Date(last.time))/3600000).toFixed(1);console.log('Da ngu: '+h+' gio')}else{console.log('Da ghi: thuc day')}" ``` ## View Stats When user says "thống kê" or "xem thống kê": ```bash node -e "const fs=require('fs');const f='{baseDir}/health-data.json';let d={water:[],sleep:[]};try{d=JSON.parse(fs.readFileSync(f))}catch(e){}console.log('Water:',d.water.length,'records');console.log('Sleep:',d.sleep.length,'records');const today=d.water.filter(w=>new Date(w.time).toDateString()===new Date().toDateString());console.log('Today:',today.reduce((s,w)=>s+w.cups,0),'cups')" ``` ## Update Record To update last water entry: ```bash node -e "const fs=require('fs');const f='{baseDir}/health-data.json';let d=JSON.parse(fs.readFileSync(f));d.water[d.water.length-1].cups=NEW_CUPS;fs.writeFileSync(f,JSON.stringify(d));console.log('Updated')" ``` ## Delete Record To delete last water entry: ```bash node -e "const fs=require('fs');const f='{baseDir}/health-data.json';let d=JSON.parse(fs.readFileSync(f));d.water.pop();fs.writeFileSync(f,JSON.stringify(d));console.log('Deleted')" ``` ## Notes - Uses Node.js built-in modules only - File auto-created if missing - All timestamps in ISO8601 format


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: 1477009639zw-blip/betacompetit (version 1.0.0)

--- name: competitor-analysis description: Comprehensive competitor analysis framework. Research competitors, compare products, identify gaps, and find positioning opportunities. Used by startups, investors, and product teams. metadata: openclaw: emoji: "🔍" requires: bins: [python3] always: false --- # Competitor Analysis Framework Systematic competitor research and analysis tool. ## What It Delivers ### Competitor Profiles - Company overview and history - Product features matrix - Pricing strategy - Target customers - Go-to-market approach - Strengths and weaknesses ### Positioning Map - 2D positioning visualization - Identify whitespace opportunities - differentiation strategies ### Comparison Tables - Feature-by-feature comparison - Pricing comparison - Market segment overlap ## Usage ```bash python3 analysis.py --competitors "Stripe,Square,PayPal" --category payments python3 analysis.py --report full --output markdown ``` ## Analysis Framework ### Porter's Five Forces - Competitive rivalry - Threat of new entrants - Threat of substitutes - Buyer power - Supplier power ### SWOT Analysis - Strengths - Weaknesses - Opportunities - Threats --- *Built by Beta*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: juguangyuan520-dotcom/ocr-space (version 1.0.0)

--- description: 调用 OCR.space 免费 API 识别图片中的文字 --- # OCR.space 文字识别 Skill 使用免费 OCR API 识别图片中的文字，支持多语言。 ## 🚀 功能 - ✅ 图片文字识别 (OCR) - ✅ 多语言支持 - ✅ 免费无需注册 - ✅ 支持中文、英文、日文、韩文等 20+ 语言 --- ## 📡 OCR.space 免费版限制 | 限制项 | 额度 | |--------|------| | 每日请求数 | **500 次/天** | | 单文件大小 | **5 MB**（自动压缩） | | API Key | 不需要（测试用 `helloworld`）| > ⚠️ 注意：免费版适合测试和小规模使用，生产环境建议购买付费版 --- ## 🌍 支持的语言 | 语言代码 | 语言名称 | |---------|---------| | `chs` | 中文简体 | | `cht` | 中文繁体 | | `eng` | 英语 | | `jpn` | 日语 | | `kor` | 韩语 | | `fre` | 法语 | | `ger` | 德语 | | `spa` | 西班牙语 | | `por` | 葡萄牙语 | | `rus` | 俄语 | | `ara` | 阿拉伯语 | | `tha` | 泰语 | | `hin` | 印地语 | | `vie` | 越南语 | | `ita` | 意大利语 | | `dut` | 荷兰语 | | `pol` | 波兰语 | | `tur` | 土耳其语 | > 💡 Engine 2 和 Engine 3 支持语言自动检测 --- ## 📁 文件结构 ``` ocr-space/ ├── SKILL.md # 本文件 ├── ocr_space.py # 主脚本 └── README.md # 使用说明 ``` --- ## 🔧 使用方法 ### 命令行 ```bash # 识别中文（默认） python3 ocr_space.py /path/to/image.jpg # 识别英文 python3 ocr_space.py /path/to/image.jpg eng # 识别日文 python3 ocr_space.py /path/to/image.png jpn ``` ### Python 代码调用 ```python import sys sys.path.insert(0, '/Users/shusiwei/.openclaw/workspace/skills/ocr-space') from ocr_space import ocr_image # 识别图片 result = ocr_image('/path/to/image.jpg', language='chs') if result: print(result) ``` --- ## 📝 OpenClaw 中使用 在 OpenClaw 中可以通过 exec 调用： ```bash python3 ~/.openclaw/workspace/skills/ocr-space/ocr_space.py <图片路径> [语言] ``` 示例： ```bash # 识别桌面图片 python3 ~/.openclaw/workspace/skills/ocr-space/ocr_space.py ~/Desktop/screenshot.png ``` --- ## 🔍 完整 API 文档 更多参数和使用方法请参考：[OCR.space OCR API](https://ocr.space/ocrapi) --- ## 📜 更新日志 - **2026-03-10**: 初始版本，支持基本 OCR 功能


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: srikanth-hn/medical-auditor (version 1.0.0)

--- name: medical_revenue_audit description: Audits hospital surgical logs against billing to find revenue leakage. --- # Medical Revenue Audit Skill When asked to perform a medical audit: 1. **Identify the Data:** Look for the file named `hospital_logs.json` in the workspace. 2. **Cross-Reference:** - Extract the "Surgeon Notes" or "Procedure Summary." - Extract the "Billed Items." 3. **Analyze Discrepancies:** - Look for items mentioned in notes (e.g., Anesthesia, specialized sutures, implants) that do not appear in the "Billed Items" list. 4. **Report:** - Create a table: | Item in Notes | Status in Bill | Estimated Leakage | - Total the estimated revenue recovered. 5. **Draft Action:** - Draft a WhatsApp message to the Hospital Administrator outlining the findings and asking for approval to update the bill.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: cdk1025/invoice-merger (version 1.0.5)

--- name: invoice-merger description: 合并发票文件。PDF 按两两上下排版，图片按四宫格排版，统一裁剪线与安全边距，输出到 YYYYMMDD--已合并 目录，重复执行会自动跳过历史合并文件并按编号继续生成。 --- # Invoice Merger - 发票合并工具 将一批发票文件快速整理成可打印 PDF，省纸、省时、省心。 - PDF：每页上下放 2 个输入文件 - 图片：每页按 2x2 布局放 4 张图 - PDF 和图片使用统一的裁剪线样式与安全边距 ## 功能说明 ### 1. PDF 合并 - **两两合并**：上下结构，每页放 2 个 PDF - **边距**：页面外边距 15pt，中线两侧各预留 15pt 安全区 - **取页规则**：每个输入 PDF 仅取第一页 - **缩放规则**：按 A4 半页安全区自动缩放，发票高度不一致时也会统一适配 - **裁剪线**：上下半页中间增加统一样式的虚线裁剪线 ### 2. 图片合并 - **四个合并**：两行两列布局（上半页 1-2，下半页 3-4） - **奇数处理**：剩余 1-3 张保持布局，不复制自己 - **缩放规则**：按比例缩放并居中 - **安全区**：内容不会压到中间裁剪线 - **裁剪线**：上下半页中间增加统一样式的虚线裁剪线 ## 输出 - **位置**：默认输出到输入目录下 `YYYYMMDD--已合并` - **命名**：PDF 合并优先 `发票合并.pdf`，图片合并优先 `账单合并.pdf`，重名时自动追加序号 - **幂等规则**： - 自动跳过历史生成的 `发票合并*.pdf`、`账单合并*.pdf` - 同一天重复执行会复用已有输出目录 - 如果传入目录本身就是 `YYYYMMDD--已合并`，会直接在该目录下继续按编号生成 - 自动打开预览 ## 触发场景 - 用户说「合并发票」「把发票拼一起」「发票批量排版」 - 用户要把一批 PDF/JPG/JPEG/PNG 发票合并成可打印 PDF ## 安装与使用 ### 在 OpenClaw 中使用（推荐） 支持 OpenClaw 系列产品（如 WorkBuddy、QClaw）。 #### 1. 通过本地路径 - WorkBuddy 直接导入技能即可 - 将源码文件夹拖入 QClaw 对话窗口 #### 2. 通过 ClawHub 安装 > 需要安装 nodejs ```text npx clawhub@latest install cdk1025/invoice-merger ``` #### 3. 通过 skills 安装 > 需要安装 nodejs ```text npx skills add cdk1025/invoice-merger --path invoice-merger ``` ### 首次使用需安装依赖 在 OpenClaw 中通常让 AI 自己处理即可。 脚本当前实际使用的第三方依赖只有 `pypdf` 和 `Pillow`（导入名为 `PIL`）。 如果你是命令行手动运行，可执行： ```bash python -m pip install pypdf Pillow ``` ### 命令行使用 适合开发者或没有 OpenClaw 产品的用户。 ```bash python3 ~/.qclaw/skills/invoice-merger/scripts/merge_invoices.py <目录路径> ``` ## 注意事项 - PDF 只取每个输入文件的第一页参与排版 - 输出目录按日期创建，重复执行会复用同名目录 - 为避免二次缩版，脚本不会再次处理自己历史生成的合并 PDF - 生成后会按系统默认程序自动打开本次输出文件（macOS / Windows / Linux）


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: sheygoodbai/taskfit (version 0.1.1)

--- name: taskfit version: 0.1.1 description: "Official 会下指令 TaskFit discovery skill. TaskFit is the OpenClaw plugin that rewrites rough user requests into stronger execution briefs using anonymous structure patterns learned locally from successful past tasks on the same device." tags: [taskfit, openclaw, clawhub, prompt-optimizer, task-brief, 会下指令, 指令优化, local-history] source: Sheygoodbai/taskfit trigger: "TaskFit" metadata: openclaw: emoji: "🧭" homepage: "https://clawhub.ai/plugins/openclaw-taskfit" --- # 会下指令 TaskFit Discovery Skill Use this discovery skill when the user is trying to find: - a way to help OpenClaw understand rough requests better - a prompt optimizer that learns from successful local task patterns - a plugin that improves agent execution without exposing raw local task-history text - a companion plugin to NoJargon for the input side of the conversation ## Canonical routes - ClawHub plugin page: `https://clawhub.ai/plugins/openclaw-taskfit` - GitHub repository: `https://github.com/Sheygoodbai/taskfit` - Plugin install: `openclaw plugins install clawhub:@sheygoodbai/openclaw-taskfit` - Enable plugin: `openclaw plugins enable taskfit` - Turn optimization on: `/taskfit adaptive` - Runtime controls: `/taskfit on`, `/taskfit off`, `/taskfit adaptive`, `/taskfit always`, `/taskfit status` ## Positioning 会下指令 TaskFit is not an MCP server. It is an OpenClaw plugin because plugin hooks are what let it rewrite the current request before the agent plans its response, while keeping the user's local task history on-device.


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