OpenClaw/clawhub-security-signals huggingface dataset:
Skill: ivangdavila/skill-test (version 1.0.0)

--- name: "Skill Test" description: "Test skills before using or publishing. Trial, compare, evaluate in isolation without affecting your environment." --- ## Test Skills Safely Two use cases: 1. **Try before commit** — Test drive skills before installing 2. **Evaluate before publish** — Verify quality before publishing **Key principle:** Test in isolation. Never affect user's environment. **References:** - Read `sandbox.md` — Isolated testing environment - Read `compare.md` — A/B comparison between skills - Read `evaluate.md` — Multi-agent quality evaluation --- ### Quick Start **Trial a skill:** ``` sessions_spawn( task="Test skill X: Load ONLY its SKILL.md, run [sample task], report quality", model="anthropic/claude-haiku" ) ``` **Compare two skills:** 1. Run same task through each (separate sub-agents) 2. Present outputs side-by-side 3. Ask: "Which works better? Why?" --- ### Test Modes **Trial Mode** — Before installing - Spawn sub-agent with ONLY the test skill - Run 2-3 representative tasks - Evaluate: Does it help? Clear instructions? - Decision: keep, pass, or try another **Evaluation Mode** — Before publishing - Spawn specialized reviewers (see `evaluate.md`) - Check structure, safety, usefulness - Synthesize findings - Recommend improvements --- ### Sandbox Isolation ⚠️ Never load test skill into your main context. **Sub-agent approach (recommended):** ``` sessions_spawn( task="You have ONE skill loaded: [skill content]. Test by doing: [task]", model="anthropic/claude-haiku" ) ``` - Complete isolation — main session unaffected - Natural cleanup — sub-agent terminates, done - Cheap testing — use Haiku **What to check:** - Does it activate correctly? - Are instructions clear? - Token cost reasonable? - Output quality acceptable? --- ### Edge Cases **Skill requires credentials:** Ask user for test credentials or skip auth-dependent features. **Skill not found:** Verify slug with `npx clawhub info <slug>` before testing. **Test fails mid-way:** Sub-agent terminates cleanly. Review logs, adjust test task, retry. **Skill has many auxiliary files:** Load SKILL.md first, reference others only if needed during test. --- *Test thoroughly. Install only after explicit user approval.*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: gekacross/personal-hygiene (version 1.0.0)

--- name: personal-hygiene description: Acts as the user's personal care and grooming assistant in the Hygiene topic. Tracks grooming routines, skincare, dental, haircuts, purchases of hygiene products. Use when in Personal chat Hygiene topic, or when user mentions hygiene, skincare, skin, teeth, dental, haircut, barber, shower, grooming, shaving, cream, deodorant, or personal care. --- # Personal Hygiene (уход за собой) Роль: **твой помощник по уходу за собой**. Трекает рутины, напоминает, советует. ## Перед ответом 1. **Прочитай** `knowledge/personal/hygiene.md` — там рутины, продукты, расписание. 2. **Учитывай историю чата**. 3. Если пользователь рассказал **новое** (сменил продукт, начал рутину) — обнови `knowledge/personal/hygiene.md`. ## Что умеет - **Рутины:** утренняя/вечерняя — что делаешь, в каком порядке. - **Скинкер:** уход за кожей — продукты, частота, результаты. - **Зубы:** когда был у стоматолога, напомнить раз в полгода. - **Стрижка:** когда последний раз, куда ходишь, напомнить. - **Продукты:** что используешь, что заканчивается, что купить. - **Бритьё/груминг:** частота, средства. - **Напоминания:** «пора к барберу», «крем заканчивается». ## Правила - Без стыда и осуждения — это нормальная тема для трекинга. - Практичные советы, не продажа косметики. - Формат в `knowledge/personal/hygiene.md`: ```markdown ## Утренняя рутина 1. ... 2. ... ## Вечерняя рутина 1. ... ## Продукты | Продукт | Марка | Когда менять | |---------|-------|-------------| | ... | ... | ... | ## Расписание - Стрижка: каждые X недель (последняя: дата) - Стоматолог: каждые 6 мес (последний: дата) ``` - Тон: нейтральный, практичный. ## Файлы - **Память:** `knowledge/personal/hygiene.md` — читать в начале, обновлять.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: tangsuann/openclaw-self-check (version 2.1.0)

--- name: Self-Check slug: self-check version: 2.1.0 description: "系统自检工具。全面检查环境配置、文件完整性、Gateway、备份状态、日志报错、磁盘用量等，汇报问题并给出修复建议（不主动修复）。兼容 workspace/workspace-xxx 两种命名。" metadata: {"clawdbot":{"emoji":"🔍","requires":{"bins":["node","npm"],"os":["linux","darwin"]},"configPaths":[".openclaw/"]}} --- ## When to Use - 用户要求进行系统自检 - 环境更新后验证配置 - 排查问题前的基础检查 - 定期健康检查 ## 核心原则 ⚠️ **只检查、汇报、建议，绝不主动修复** - ❌ 不自动安装任何包 - ❌ 不自动修改任何配置文件 - ❌ 不自动重启任何服务 - ✅ 只汇报发现的问题 - ✅ 只给出修复建议命令 - ✅ 等待用户确认后再执行修复 ## 自检项目 ### 1. Node.js 环境 - [ ] Node.js 版本（需 >= 22.12.0） - [ ] nvm 是否可用 - [ ] npm 版本 ### 2. OpenClaw 核心 - [ ] Gateway 状态 - [ ] Gateway 进程 node 版本 - [ ] 插件加载状态（acpx, qqbot, discord 等） ### 3. 配置文件 - [ ] openclaw.json 语法正确 - [ ] 必要的 channel 配置存在 ### 4. Agent 文件 - [ ] SOUL.md 存在（必需） - [ ] USER.md 存在（必需） - [ ] AGENTS.md 存在（必需） - [ ] MEMORY.md 存在（可选，用于长期记忆） - [ ] memory/ 目录（每日记录） - [ ] self-improving/ 目录（学习记忆） ### 5. Skills 详细检查 - [ ] skill 目录结构完整（SKILL.md, scripts/, config.json） - [ ] Python 模块依赖是否安装 - [ ] 外部工具是否可用 ### 6. MCP 检查 - [ ] acpx 插件版本 - [ ] acpx 二进制文件 - [ ] acpx 运行时后端状态 ### 7. API Token - [ ] 环境变量中的 API key - [ ] 配置文件中的 API key（不显示值） ### 8. 权限 - [ ] workspace 目录权限 - [ ] .openclaw 目录权限 - [ ] skills 目录可写性 ## 输出格式 ``` # 🔍 自检报告 ## ✅ 通过项 - Node.js (nvm): v22.22.1 ✅ - Gateway: 运行中 ✅ ## ⚠️ 警告项 - telegram: 未启用（可选） ## ❌ 问题项 ### 1. 🔴 Skill aliyun-stt: 缺少 Python 模块 'dashscope' 修复建议: pip3 install dashscope --break-system-packages ⚠️ 请手动执行上述命令，不要自动修复 ``` ## 执行方式 ```bash python3 ~/.openclaw/workspace-ptilopsis/skills/self-check/scripts/self_check.py ``` ## 注意事项 - **绝不主动修复** - 只汇报问题和建议 - 所有修复命令需用户手动执行 - 敏感信息（如 token）只显示是否配置，不显示值 - 检查结果按严重程度排序（错误 > 警告 > 通过）


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: gblockchainnetwork/ollama-model-tuner (version 1.0.0)

--- summary: "Ollama Model Tuner: Locally fine-tune prompts, LoRAs, and models with Ollama for custom tasks." description: "Optimize Ollama models/prompts using local datasets, eval metrics, and iterative tuning. No cloud needed." triggers: - "tune ollama" - "optimize ollama model" - "fine-tune local LLM" - "ollama prompt engineer" read_when: - "ollama tune" in message - "model fine-tune" in message --- # Ollama Model Tuner v1.0.0 ## 🎯 Purpose - Prompt engineering & A/B testing - Modelfile customization - LoRA fine-tuning with local data - Performance benchmarking ## 🚀 Quick Start ``` !ollama-model-tuner --model llama3 --dataset ./data.json --task classification ``` ## Files - `scripts/tune.py`: Python tuner with eval loop - `prompts/system.md`: Base system prompts ## Supported Ollama 0.3+, Python 3.10+, datasets in JSONL/CSV.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: ntriq-gh/ntriq-video-intelligence-analyzer (version 1.0.0)

--- name: ntriq-video-intelligence-analyzer description: "AI-powered multimodal analysis for images and videos. Structured tags, scene descriptions, mood analysis, virality scores. 15 languages. Users provide their own URLs — this tool does not scrape or ..." version: 1.0.0 metadata: openclaw: primaryTag: data-intelligence tags: [media,content] author: ntriq homepage: https://x402.ntriq.co.kr --- # Video Intelligence Analyzer Multimodal AI analysis for images and videos. Returns structured tags, scene descriptions, mood analysis, virality potential scores, and content classification across 15 languages. Users provide their own URLs — no scraping or external data collection. ## Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `media_url` | string | ✅ | Image or video URL | | `analyses` | array | ❌ | `tags`, `scenes`, `mood`, `virality`, `content_safety` | | `language` | string | ❌ | Output language ISO code (default: `en`) | | `audience` | string | ❌ | Target audience context for virality scoring | ## Example Response ```json { "tags": ["sunset", "beach", "golden hour", "ocean", "serene", "travel"], "scenes": [ {"timestamp": "0:00–0:12", "description": "Wide beach panorama, orange sunset sky reflecting on wet sand"}, {"timestamp": "0:12–0:31", "description": "Close-up of waves breaking, slow motion, foam patterns"} ], "mood": {"primary": "peaceful", "secondary": "nostalgic", "valence": 0.82}, "virality_score": 78, "virality_factors": ["cinematic quality", "emotional resonance", "trending aesthetic"], "content_safety": "safe", "language": "en" } ``` ## Use Cases - Social media content performance prediction before posting - Brand content library automated tagging at scale - Ad creative performance pre-screening ## Access ```bash # x402 endpoint — pay $0.05 USDC per call (Base mainnet) POST https://x402.ntriq.co.kr/video-intel # Service catalog curl https://x402.ntriq.co.kr/services ``` [x402 micropayments](https://x402.ntriq.co.kr) — USDC on Base, gasless EIP-3009


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

--- name: Arduino description: Develop Arduino projects avoiding common wiring, power, and code pitfalls. metadata: {"clawdbot":{"emoji":"🔌","os":["linux","darwin","win32"]}} --- ## Voltage and Power Traps - 3.3V vs 5V logic mixing damages boards — ESP32 is 3.3V, Uno is 5V, level shifter required - USB provides max 500mA — not enough for motors, servos, or many LEDs - Never power motors from Arduino 5V pin — use external supply with common ground - Brown-out causes random resets — looks like code bugs, actually insufficient power - Decoupling capacitors (0.1µF) near sensor power pins — reduces noise-related glitches ## Wiring Mistakes - Floating inputs read random values — always use pullup or pulldown resistor - All components must share common ground — separate grounds = nothing works - Long wires pick up noise — keep analog sensor wires short - LEDs need current limiting resistors — direct connection burns LED and pin - Reversed polarity destroys components — double-check before powering on ## Pin Conflicts - RX/TX pins (0, 1) conflict with Serial — avoid for GPIO when using Serial Monitor - Some pins have special functions — check board pinout for I2C, SPI, interrupt-capable pins - PWM only on pins marked with ~ — `analogWrite()` on wrong pin does nothing - Internal pullup available — `INPUT_PULLUP` eliminates external resistor for buttons ## Timing Traps - `delay()` blocks everything — nothing else runs, no input reading, no interrupts serviced - `millis()` for non-blocking timing — compare against last action time - `millis()` overflows after ~50 days — use subtraction: `millis() - lastTime >= interval` - Interrupts for time-critical events — `attachInterrupt()` responds immediately ## Memory Constraints - Uno has only 2KB RAM — large arrays fail silently with weird behavior - `F()` macro keeps strings in flash — `Serial.println(F("text"))` saves RAM - `PROGMEM` for constant arrays — keeps data out of RAM - String class fragments heap — prefer char arrays for stability ## Serial Debugging - Baud rate must match — mismatch shows garbage, not an obvious error - `Serial.begin()` required in setup — output before this goes nowhere - Serial printing slows execution — remove or reduce for production code ## Upload Problems - Wrong board selected — uploads but doesn't run correctly - Serial Monitor holds port — close before uploading - USB cable might be power-only — some cheap cables don't carry data - Bootloader corrupted — reflash using another Arduino as ISP ## Sensor Communication - I2C devices share bus — check for address conflicts with scanner sketch - 5V sensors on 3.3V boards give wrong readings or damage — check operating voltage - SPI needs separate CS per device — can't share chip select lines


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: elevenzhou/eleven-ip-screener (version 1.0.0)

--- name: ip-screener description: IP改编潜力筛选技能。从番茄小说、起点、七猫等小说平台筛选最具短剧/AI漫剧改编潜力的未改编小说，从剧情节奏、角色数、场景复杂度、画面感、受众共鸣、题材新颖度等维度打分，输出TOP5评分榜单。触发词：IP筛选、小说筛选、改编潜力分析、未改编小说、选剧分析、IP评分。 --- # IP改编潜力筛选技能 ## 数据获取流程 ### Step 1：确定筛选范围 根据用户需求选择数据来源（至少选2个平台）： - 番茄小说热门榜（免费榜/付费榜/完本榜） - 起点中文网（如起点中文网热门） - 七猫免费小说 - 纵横中文网 ### Step 2：搜索潜力IP 使用 `batch_web_search` 并行抓取各平台数据，关键词： ``` site:fqxs.cc 未改编 热门 2025 site:qimao.cc 短剧改编 潜力IP 番茄小说 热门原创 未改编 2025 ``` ### Step 3：提取关键数据 对每本小说提取： - 书名、作者、字数、题材标签 - 平台排名、收藏数、评论量（估算） - 故事类型（爽文/虐文/悬疑/甜宠） - 主要角色数量、场景数量 - 是否已授权改编（排除已售出版权） --- ## 评分维度（10分制） | 维度 | 权重 | 评分要点 | |------|------|---------| | 剧情节奏 | 20% | 开篇钩子、前3集是否有爆点、爽点密度 | | 角色适配 | 15% | 主角不超过5人、角色标签化程度（利于AI建模） | | 场景适配 | 15% | 场景数量适中（5-15个核心场景）、视觉化程度 | | 受众共鸣 | 15% | 情绪价值（爽/虐/甜）、目标受众广度 | | 题材新颖 | 15% | 差异化程度、是否踩中当下热门题材 | | 集数适配 | 10% | 故事体量适合20-50集 | | 制作成本 | 10% | 场景集中度、特效量、角色服装成本 | | **综合得分** | 100% | 加权总分，输出TOP5 | --- ## 题材偏好参考（2026年热门） ### 高优先级题材 - **都市异能+系统流**：受众广、制作成本低、爽点密集 - **甜宠/霸总**：女频主力，AI仿真人适配度高 - **末日/生存**：海外接受度高，出海潜力大 - **悬疑/推理**：剧情张力强，完播率高 ### 中优先级题材 - 古风/历史：制作成本高，但IP价值大 - 玄幻/修仙：特效量大，需评估ROI ### 排除题材 - 色情擦边、封建迷信过度、政治敏感 --- ## 输出格式 ``` # IP改编潜力分析报告 📅 {日期} | 数据来源：{平台列表} ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🏆 TOP5 最具改编潜力小说 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🥇 第1名：《{书名}》 作者：{作者} 题材：{类型标签} 综合得分：{X}/10 平台数据：{排名、收藏等} 适合类型：AI仿真人 / AI漫剧 核心亮点：{3句话} 改编优势：{简评} 链接：{来源链接} ⚠️ 风险提示：{如有} --- （以此类推第2-5名） ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📊 评分维度详情（TOP3） ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 【{书名}】 剧情节奏：8/10 ████████ 角色适配：7/10 ███████ 场景适配：9/10 █████████ 受众共鸣：8/10 ████████ 题材新颖：6/10 ██████ 集数适配：9/10 █████████ 制作成本：7/10 ███████ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 💡 选剧建议 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • 最快变现：{推荐1} • 出海优先：{推荐2} • 平台适配：{平台}+{题材} ``` --- ## 注意事项 - 数据来源尽量取实时排名（最近30天） - 每本小说须标注"AI仿真人适配"或"AI漫剧适配" - 排除已明确标注"已售出改编版权"的作品 - 评分须有依据，引用平台数据或小说内容 - 如某维度数据缺失，标注"--"并说明原因


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: rsdouglas/janee (version 0.1.2)

--- name: janee version: 0.1.0 description: Secrets management for AI agents. Never expose your API keys again. homepage: https://github.com/rsdouglas/janee metadata: {"category": "security", "emoji": "🔐"} --- # Janee Secrets management for AI agents. Store API keys encrypted, make requests through Janee, never touch the real key. ## Why Use Janee? Most skills tell you to store API keys in plaintext config files. One prompt injection, one leaked log, one compromised session — and your keys are exposed. Janee fixes this: - **Keys encrypted at rest** — not plaintext JSON - **Agent never sees the real key** — requests go through Janee - **Path-based policies** — restrict what endpoints can be called - **Full audit trail** — every request logged - **Kill switch** — revoke access without rotating keys ## Install ```bash npm install -g @true-and-useful/janee janee init ``` ## Add a Service ```bash janee add ``` Follow the prompts to add your API credentials. Keys are encrypted automatically. ## Use in Your Agent Instead of calling APIs directly with your key, call them through Janee: ```bash # Old way (dangerous): curl -H "Authorization: Bearer sk_live_xxx" https://api.stripe.com/v1/balance # Janee way (safe): # Agent calls execute(capability, method, path) via MCP # Janee injects the key, agent never sees it ``` ## OpenClaw Integration Install the OpenClaw plugin for native tool support: ```bash openclaw plugins install @true-and-useful/janee-openclaw ``` Your agent now has: - `janee_list_services` — see available APIs - `janee_execute` — make requests through Janee - `janee_reload_config` — hot-reload after config changes ## Example: Secure Moltbook Access Instead of storing your Moltbook key in `~/.config/moltbook/credentials.json`: ```bash janee add moltbook -u https://www.moltbook.com/api/v1 -k YOUR_KEY ``` Then use Janee to post: ```yaml # Your agent calls: janee_execute(service="moltbook", method="POST", path="/posts", body=...) ``` Your Moltbook key stays encrypted. Even if your agent is compromised, the key can't be exfiltrated. ## Config Example ```yaml services: stripe: baseUrl: https://api.stripe.com auth: type: bearer key: sk_live_xxx # encrypted moltbook: baseUrl: https://www.moltbook.com/api/v1 auth: type: bearer key: moltbook_sk_xxx # encrypted capabilities: stripe_readonly: service: stripe rules: allow: [GET *] deny: [POST *, DELETE *] moltbook: service: moltbook ttl: 1h autoApprove: true ``` ## Architecture ``` ┌─────────────┐ ┌──────────┐ ┌─────────┐ │ AI Agent │─────▶│ Janee │─────▶│ API │ │ │ MCP │ │ HTTP │ │ └─────────────┘ └──────────┘ └─────────┘ │ │ No key Injects key + logs request ``` ## Links - GitHub: https://github.com/rsdouglas/janee - npm: https://www.npmjs.com/package/@true-and-useful/janee - OpenClaw Plugin: https://www.npmjs.com/package/@true-and-useful/janee-openclaw


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: liliangjie91/news-sum (version 1.0.0)

--- name: news-sum description: 新闻汇总与邮件投递技能。当用户要求"生成今日新闻汇总"、"把新闻发给邮箱"时触发。支持：(1) 接收用户指定主题，搜索生成新闻汇总；(2) 按用户要求投递到指定邮箱。 --- # News Sum 新闻搜索生成与邮件投递。 ## 默认参数 汇总文件路径：`workspace/archive/news/news-{yyyymmdd}.md` JSON文件路径：`workspace/archive/news/json/json-{yyyymmdd}-{topic}.json` draf文件路径：`workspace/archive/news/draf/draft-{yyyymmdd}.md` 默认检索主题：topics = `国际局势 经济金融 科技AI` ## 整体流程：主编 → 编辑 → 记者三层架构 ``` 主agent（主编） │ ├─ Step 1: 读取昨日新闻，识别持续事件 │ ├─ Step 2: 并行启动记者subagent（每个topic一个） │ 记者生成 json-{yyyymmdd}-topic.json │ ├─ Step 3: 等待所有记者完成 │ ├─ Step 4: 启动编辑subagent │ 编辑整合所有json → 生成 draft-{yyyymmdd}.md │ └─ Step 5: 主agent读取draft.md 添加【综合分析】【预测】 生成最终文件 {yyyymmdd}.md + recent-brief.md ``` --- ## Step 1 读取历史，追踪持续事件 1. 读取近期新闻brief文件 `archive/news/recent-brief.md` 2. 识别各topic中的持续性事件，提取1-2个关键词/topic 辅助记者agent追踪 3. 如无则略过 --- ## Step 2 并行启动记者Subagent **执行方式：** - 使用 `sessions_spawn` 并行启动每个topic的记者subagent - runtime = `subagent`，mode = `run` - 所有topic同时启动，不串行等待 - 等待所有 childSessionKey 的 completion 事件返回 **记者prompt模板：** `references/journalist.md` --- ## Step 3 等待记者完成 收集所有记者返回的json文件路径，校验是否完整。如有失败，记录该topic，主agent可选择补做或标注"数据获取失败"。 --- ## Step 4 启动编辑Subagent 记者全部完成后，启动编辑subagent同时告知对应json文件路径： **编辑prompt模板：** `references/editor.md` - 读取所有 json-{yyyymmdd}-*.json 文件 - 识别热点事件，建立专题 - 补搜非热点新闻（如某topic下非热点新闻不足3条） - 生成 `draft-{yyyymmdd}.md` --- ## Step 5 主编生成最终文件 主agent读取 `draft-{yyyymmdd}.md`，以资深总编身份： 1. 补充【综合分析】【预测】章节 2. 按 `references/format.md` 格式写入最终文件 `news-{yyyymmdd}.md` 3. 更新近期新闻brief文件 `archive/news/recent-brief.md` -每个topic总结几个近期热点，滚动更新，整个文件控制在500字内。 --- ## 核心原则 - **并行**：所有记者subagent同时启动 - **记者独立性**：每个记者只管自己topic，不参考其他topic的json - **编辑整合**：编辑层负责跨topic的热点专题化和去重 - **主编把关**：最终文件由主agent亲自执笔总结分析 - 总字数 7000字 - 10000字 --- ## 功能2：新闻邮件投递 当用户要求投递到邮箱时： 1. 读取今日新闻汇总，如无则退出 2. 将 markdown 转换为 HTML（直接在内存中转换，不生成临时文件） 3. 发送邮件： ```bash gog gmail send --to="{EmailTarget}" --subject="NewsToday {yyyy-mm-dd}" --attach="{dir}/news-yyyymmdd.md" --body-html="$(printf '%s' '{HTML内容}')" ``` 4. **注意**：`--body-html` 使用 `$(printf '%s' ...)` 避免回车丢失


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: omnimahui/daily-medium (version 1.0.0)

--- name: daily-medium description: Fetch and summarize Medium Daily Digest emails from Gmail. Extracts article URLs, generates Freedium links to bypass paywalls, and provides article summaries. Use when the user wants to check their Medium Daily Digest, read Medium articles without paywall, or get summaries of Medium content from their email. --- # Daily Medium Skill Fetch Medium Daily Digest emails from Gmail and extract article information with paywall-free links. ## Overview This skill connects to Gmail via IMAP, retrieves the latest Medium Daily Digest email, extracts article URLs, and provides Freedium mirror links to bypass Medium's paywall. ## Prerequisites **Environment Variables Required:** - `EMAIL_ADDRESS` - Gmail address (e.g., [REDACTED_SECRET]) - `EMAIL_PASSWORD` - Gmail App Password (not regular password) **How to get Gmail App Password:** 1. Go to Google Account → Security → 2-Step Verification 2. At the bottom, click "App passwords" 3. Select "Mail" and your device 4. Copy the 16-character password ## Usage ### Basic Usage ```python from scripts.fetch_medium import fetch_medium_digest # Fetch today's Medium digest result = fetch_medium_digest() if result: print(f"Digest: {result['digest_title']}") for article in result['articles']: print(f"- {article['title']}") print(f" Freedium: {article['freedium_url']}") ``` ### With Custom Credentials ```python result = fetch_medium_digest( email_address="[REDACTED_SECRET]", password="xxxx xxxx xxxx xxxx" ) ``` ## Output Format The `fetch_medium_digest()` function returns: ```python { 'digest_date': 'Mon, 16 Feb 2026 12:30:00 +0000', 'digest_title': '10 OpenClaw Use Cases for a Personal AI Assistant | Balazs Kocsis', 'articles': [ { 'title': 'Article Title Here', 'author': 'username', 'url': 'https://medium.com/@username/article-slug', 'freedium_url': 'https://freedium-mirror.cfd/https://medium.com/@username/article-slug' }, # ... more articles ] } ``` ## Article Summaries To generate article summaries, fetch the content via Freedium and summarize: ```python import requests from bs4 import BeautifulSoup def summarize_article(freedium_url): response = requests.get(freedium_url) soup = BeautifulSoup(response.content, 'html.parser') text = soup.get_text(separator=' ', strip=True) # Return first 300 chars as summary return text[:300] + "..." ``` ## Notes - Maximum 15 articles returned by default (configurable via `max_articles` parameter) - Requires IMAP access enabled in Gmail settings - Uses Freedium (freedium-mirror.cfd) to bypass Medium's paywall - Only fetches the most recent Medium Daily Digest email


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: luw2007/langextract-search (version 0.1.5)

--- name: langextract-search description: 集成智谱搜索、DuckDuckGo 搜索和多模型结构化提取的完整工作流。 license: Apache-2.0 --- # LangExtract Search Skill 集成智谱搜索 + DuckDuckGo 搜索 + 多模型结构化提取的完整工作流。 ## 功能特性 - 🔍 **智谱 AI 搜索**: 使用智谱 zai-sdk 进行网络搜索 - 🌐 **DuckDuckGo 搜索**: 备用搜索引擎（支持多后端：Bing/Google/Brave 等） - 📝 **多模型提取**: 支持 OpenAI 通用协议 - 🔄 **完整工作流**: 搜索 → 提取 → 保存，一键完成 - ⚙️ **灵活配置**: 支持时间过滤、地区设置、代理等高级参数 ## 前置条件 1. Python 3.8+ 2. **ddgs**（DuckDuckGo 搜索库） 3. **requests**（HTTP 请求库） 4. 可选：配置 langextract 处理模型 ## 安装 ```bash pip install requests ddgs langextract ``` 参考 `conf.json.example` 配置模型 ### 首次使用交互选择 如果未在 `openclaw.json` 中配置 `baseUrl`，首次运行时会自动提示选择套餐类型，选择结果保存到项目 `conf.json` 文件中。 ## 快速开始 ```bash cd scripts python search.py "搜索关键词" --verbose ``` ## 使用方法 ### 基本用法 ```bash python search.py "搜索关键词" ``` ### 验证输入输出（详细模式） ```bash python search.py "搜索关键词" --verbose ``` ### 保存完整 JSON ```bash python search.py "搜索关键词" --save-json ``` ### 自定义 DuckDuckGo 结果数量 ```bash python search.py "搜索关键词" --ddg-max-results 30 ``` ### 所有选项 ```bash python search.py --help ``` ## 搜索配置 搜索参数通过 `conf.json` 配置。默认配置开箱即用，无需额外设置。 ### 默认配置（自动应用） | 搜索引擎 | 默认结果数 | 时间过滤 | 其他 | | ---------- | ---------- | -------- | --------------- | | 智谱搜索 | 15 条 | 不限 | search_pro 引擎 | | DuckDuckGo | 20 条 | 不限 | 自动选择后端 | ### 自定义配置 当默认配置不满足需求时（如需要时间过滤、地区设置、代理等），请参阅 **[references/search-params.md](references/search-params.md)** 获取完整参数说明。 常见自定义场景： - 搜索最近一周/一月的内容：设置 `timelimit: "week"` 或 `"month"` - 限定搜索地区：设置 `region: "cn-zh"` 或 `"us-en"` - 使用代理访问：设置 `proxy: "http://127.0.0.1:7890"` - 切换搜索后端：设置 `backend: "google"` 或 `"bing,google"` ## 更多信息 工作流详细说明、输出文件格式和故障排除，请参阅 **[references/workflow-details.md](references/workflow-details.md)**。


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