OpenClaw/clawhub-security-signals huggingface dataset:
Skill: wanwan2qq/cheatsheet-generator (version 1.0.1)

--- name: cheatsheet-generator description: 速查表生成器。当用户说"生成 XXX 速查表"、"XXX 速查"、"XXX 快速参考"、"XXX 命令大全"时触发，生成结构化的 Markdown 速查表，支持导出保存。 metadata: { "openclaw": { "emoji": "📋" }, } --- # 速查表生成器 📋 > 生成结构化速查表，沉淀实战经验，支持导出分享 --- ## 触发词 ### 生成速查表 当用户消息包含以下关键词时触发： - "生成 XXX 速查表" - "XXX 速查" - "XXX 快速参考" - "XXX 命令大全" - "XXX 配置指南" - "XXX 手册" - "XXX cheat sheet" ### 搜索模板 当用户消息包含以下关键词时触发： - "搜索 XXX 速查表" - "查找 XXX" - "找 XXX 相关的速查表" - "有没有 XXX 的速查表" --- ## 输出格式 使用 **Markdown 格式**，包含以下模块： ### 1️⃣ 前置准备（检查清单） ```markdown ## 📋 前置准备 - [ ] 检查项 1 - [ ] 检查项 2 ``` ### 2️⃣ 核心命令/步骤 ```markdown ## 🚀 核心命令 ```bash 命令 1 # 说明 命令 2 # 说明 ``` ### 3️⃣ 常见问题 ```markdown ## ⚠️ 常见问题 **Q**: 问题 1？ **A**: 解答 1 ``` ### 4️⃣ 实用示例 ```markdown ## 💡 实用示例 示例 1 说明 ``` --- ## 支持的主题 ### 内置模板（技术类） | 主题 | 触发词 | 说明 | |------|--------|------| | npm 发布 | `npm 速查表`、`npm 发布` | npm 包发布完整指南 | | OpenClaw 技能开发 | `技能开发速查表`、`OpenClaw 技能` | OpenClaw 技能开发指南 | | Git 常用命令 | `Git 速查表`、`Git 命令` | Git 高频命令速查 | ### AI 生成（支持任何领域）✨ **支持非技术领域的速查表！** 如果用户请求的主题没有内置模板，使用 AI 动态生成，支持： - 🏠 **生活类**：咖啡冲泡、健身动作、旅行攻略 - 💪 **健康类**：运动指南、饮食建议、冥想技巧 - 📚 **学习类**：语言学习、考试复习、知识总结 - 💼 **工作类**：会议组织、时间管理、沟通技巧 - 🍳 **美食类**：菜谱、烘焙技巧、调酒配方 - 🎨 **兴趣类**：摄影技巧、绘画入门、音乐理论 - ... **任何领域都可以！** **示例**： ``` 生成咖啡冲泡速查表 → 📋 咖啡冲泡速查表（AI 生成） 生成健身深蹲速查表 → 📋 健身深蹲速查表（AI 生成） 生成英语时态速查表 → 📋 英语时态速查表（AI 生成） ``` --- ## 导出功能 生成速查表后，主动询问用户： > 📁 需要保存为 Markdown 文件吗？ > - 保存：保存到 `~/Documents/cheatsheets/XXX-速查表.md` > - 不保存：仅显示 保存后告知文件路径，方便后续查阅。 --- ## 使用示例 ### 示例 1：npm 发布速查表 ``` 用户：生成 npm 发布速查表 助手：📋 npm 发布速查表 ## 📋 前置准备 - [ ] README.md 完整 - [ ] LICENSE 正确（MIT-0） - [ ] package.json 元数据完整 ... 需要保存为 Markdown 文件吗？ ``` ### 示例 2：Git 速查表 ``` 用户：Git 速查表 助手：📋 Git 常用命令速查表 ## 🚀 核心命令 ```bash git status # 查看状态 git add . # 添加所有文件 ... ``` ``` ### 示例 3：自定义主题 ``` 用户：生成 Docker 速查表 助手：📋 Docker 速查表（AI 生成） （AI 根据知识库生成 Docker 相关速查表） ``` --- ## 模板管理 ### 添加新模板 1. 在 `templates/` 目录创建 JSON 文件 2. 定义模板结构（sections） 3. 测试渲染效果 ### 模板结构 ```json { "id": "npm-publish", "title": "npm 发布速查表", "keywords": ["npm", "发布", "publish"], "sections": [ { "name": "📋 前置准备", "type": "checklist", "items": ["检查项 1", "检查项 2"] }, { "name": "🚀 核心命令", "type": "commands", "items": [ {"cmd": "npm login", "desc": "登录 npm"} ] } ] } ``` --- ## 注意事项 1. **内容质量优先** - 内置模板必须经过实战验证 - 不要从网上抄袭，用自己的经验 2. **及时更新** - 发现新坑 → 更新到速查表 - 用户反馈 → 优化内容 3. **导出功能** - 保存后告知文件路径 - 支持追加到已有文件 --- ## 扩展方向 ### v1.1.0 - [ ] 支持 PDF 导出 - [ ] 支持分享链接 - [ ] 模板市场（用户贡献） ### v1.2.0 - [ ] 团队协作（共享模板库） - [ ] 版本管理（模板更新历史） - [ ] 智能推荐（根据使用习惯） --- *版本：v1.0.0 | 作者：万万粥 | 最后更新：2026-03-23*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: wuqi296441342/taobao-618-material-helper (version 0.1.0)

--- name: taobao-618-material-helper description: 淘宝618活动公域素材文本提报助手，自动为活动商品填写宝贝名称和推荐理由。 --- # 618素材文本提报助手 帮淘宝商家快速完成618活动公域素材报名中的**文本提报**部分。 ## 功能 - 自动定位618素材报名页面 - 为每件活动商品填写**宝贝名称**（≤8字） - 为每件活动商品填写**推荐理由**（≤10字） - 自动提交已填内容 ## 使用场景 618/双11等大促活动报名时，多件商品需要逐一手动填写宝贝名称和推荐理由。 ## 依赖 - OpenClaw browser tool（CDP浏览器） - 已登录淘宝卖家中心 ## 使用方法 1. 浏览器已打开淘宝卖家中心618素材报名页面 2. 调用本技能，传入商品数据即可自动填写

path: README.md
content: # 618素材文本提报助手

## 这是什么？
淘宝618大促活动报名时，公域素材需要每件商品填"宝贝名称"和"推荐理由"。
这个技能帮你自动填写提交，省得一个个点。

## 用法
1. 浏览器打开淘宝卖家中心 → 618活动 → 公域素材报名
2. 调用本技能，自动填充文本并提交

## 注意
- 仅支持Windows
- 需要已登录淘宝卖家中心
- 图片素材仍需手动处理

## 版本
0.1.0 - 初版


path: _meta.json
content: {
  "slug": "taobao-618-material-helper",
  "name": "618素材文本提报助手",
  "description": "淘宝618活动公域素材文本提报助手，自动为活动商品填写宝贝名称和推荐理由",
  "version": "0.1.0",
  "tags": ["taobao", "618", "电商", "ecommerce", "素材报名"],
  "os": ["win32"],
  "author": "wuqi296441342",
  "license": "MIT"
}


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal:  | SkillSpector: clean (LOW)
Skill: mtdnot/consulting-slide-generator (version 1.0.0)

--- name: consulting-slide-generator description: "コンサルティングファーム品質のスライド図解をHTML+Tailwindで生成。McKinsey/BCG風のビジネス資料、提案書、プレゼンテーション用の図解を作成する際に使用。対応: (1) 課題提起スライド（数字+プログレスバー）, (2) ソリューションフロー（ステップ図）, (3) 2x2マトリクス（軸に意味あり）, (4) 比較表・Do/Don't, (5) プロセスフロー（ゲート付き）。出力はHTML→Chrome headlessでPNG変換。" --- # Consulting Slide Generator コンサルファーム品質のスライド図解をHTML+Tailwindで生成する。 ## 生成ワークフロー ### Step 1: スライドタイプを特定 | タイプ | 用途 | テンプレート | |--------|------|-------------| | problem | 課題提起（数字で説得） | [assets/templates/problem.html](assets/templates/problem.html) | | solution | ソリューションフロー | [assets/templates/solution.html](assets/templates/solution.html) | | matrix | 2x2マトリクス | [assets/templates/matrix.html](assets/templates/matrix.html) | | compare | 比較・Do/Don't | [assets/templates/compare.html](assets/templates/compare.html) | | process | プロセスフロー | [assets/templates/process.html](assets/templates/process.html) | ### Step 2: テンプレートを読み込み、内容を置換 ### Step 3: HTMLを保存 ``` slides/<project-name>/<slide-name>.html ``` ### Step 4: PNGに変換 ```bash bash scripts/html2png.sh input.html output.png ``` ## デザイン原則 詳細は [references/design-principles.md](references/design-principles.md) を参照。 ### 必須ルール 1. **12カラムグリッド** - `grid-cols-12` で構成 2. **3レベル階層** - Eyebrow → Title → Body 3. **2-3色配色** - Navy + Accent (Red/Green/Gold) 4. **意図的な余白** - 詰め込まない 5. **数字は大きく** - `text-5xl font-black` + プログレスバー ### 配色 ``` Navy: #0f172a, #1e293b, #334155 Red: #dc2626 Green: #059669 Gold: #ca8a04 ``` ### フォント - Noto Sans JP (Google Fonts CDN) - ウェイト: 300, 400, 500, 700, 900 ## スライドタイプ別ガイド ### Problem（課題提起） - 左: メッセージ / 右: 数字+プログレスバー - 推定値には注釈 ### Solution（ソリューション） - ステップ横並び（5段階） - Navy→Greenグラデーション - 下部に効果3カラム ### Matrix（2x2） - 軸に意味を持たせる - 各セルに優先度バッジ ### Compare（比較） - Do/Don't 2カラム - ✓/✗ アイコン ### Process（プロセス） - 縦フロー + ゲート - Yes/No分岐 ## 出力仕様 - 解像度: 1200 x 675 px - フォーマット: HTML → PNG


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: nighmat1220/word-format (version 1.0.0)

--- name: word_format_standardize description: Convert uploaded Word documents (.docx) into the fixed Chinese official-document format defined by the bundled government-style template bundle. Use when Codex needs to restyle a user-provided Word file to match this house style, enforce title/body/heading/table rules, and stop with a clear missing-font notice if required fonts are unavailable. --- # Word Format Standardize Convert a user-uploaded `.docx` into the target format and return the converted `.docx`. ## Workflow 1. Confirm the source file is a `.docx`. 2. Run `scripts/convert_to_house_style.py` with the input file and a target output path. 3. If the script exits with code `2`, tell the user which fonts are missing and do not return a converted file. 4. If conversion succeeds, return the generated `.docx`. 5. Mention that complex layout documents should still be manually checked after conversion. ## Command ```powershell python scripts/convert_to_house_style.py ` --input "C:\path\to\input.docx" ` --output "C:\path\to\output.docx" ``` ## Converter Guarantees - Check required fonts before conversion. - Apply page setup, theme, styles, font table, and section settings derived from the bundled template bundle. - Normalize paragraphs into title, body, heading 1-4, attachment label, date/signature, and table text using deterministic heuristics. - Return a hard failure instead of pretending conversion worked when critical fonts are missing. ## Resources - `assets/template-bundle.json`: text-only export of the reference template settings required for ClawHub upload. - `references/format-rules.md`: concise formatting rules and heuristics. - `scripts/convert_to_house_style.py`: converter script.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: olina1ye/email-decline-zh (version 1.0.0)

--- name: email-decline-zh description: > 专业撰写婉拒邮件/拒绝函，适用于拒绝合作邀约、供应商报价、项目外包、 演讲邀请、赞助请求等各类职场场景。在清晰传达拒绝立场的同时，措辞得体、 语气温和，有效维护双方关系。支持多种拒绝理由（预算不足、时间冲突、 方向不符、内部政策等），可生成正式或半正式风格的 decline email / 拒绝函 / 礼貌拒绝回复 / 婉拒信，一键输出可直接发送的完整邮件正文。 tags: [婉拒邮件, 拒绝函, 礼貌拒绝, 拒绝合作, decline-email, 职场沟通, 商务邮件, 邮件写作] --- # 婉拒邮件生成器 一句话简介：用专业、得体的措辞撰写各类职场婉拒邮件，清晰表达拒绝立场的同时维护良好关系。 ## Tools Required - read - write ## Usage - "帮我写一封婉拒供应商报价的邮件，对方价格太高但我不想彻底关闭合作可能" - "我需要拒绝一个合作邀约，对方是同行，请帮我写一封礼貌的拒绝函，理由是今年资源已排满" - "帮我写 decline email，婉拒对方邀请我去做主题演讲，语气要客气但态度要明确" - "供应商第三次跟进报价了，帮我写封邮件礼貌拒绝，同时不让对方觉得被敷衍" - "帮我写一封拒绝外包合作的邮件，原因是项目已决定内部消化，要维持好关系" ## Examples 输入：拒绝一家广告公司的合作提案，原因是预算有限且方向不符，希望保持未来合作可能 输出： 主题：关于合作提案的回复 您好， 感谢贵司提交详尽的合作提案，团队认真研读后深感用心。经内部评估， 受限于本阶段预算规划及当前业务重心，我们暂时无法推进此次合作。 这与贵司方案质量无关，仅因双方时机尚未契合。 期待未来有合适机会再度探讨合作可能，届时将主动与您联系。 再次感谢您的时间与努力，祝业务顺利。 此致


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: minirr890112-byte/pain-to-pip-package (version 1.1.0)

--- name: pain-to-pip-package description: Complete pipeline: Reddit pain scan → cluster → build pip-installable CLI tool → push to GitHub. 5 tools shipped using this pattern. Proven with 343 pain signals converted into actionable tools. Cron-friendly with modular stages. version: 1.1.0 author: minirr890112-byte license: MIT metadata: hermes: tags: [Pipeline, Reddit, Pain-Points, Automation, CLI, Pip, GitHub, Developer-Tools] homepage: https://github.com/minirr890112-byte/HermesMade --- # Pain To Pip Package ## 一句话 把 Reddit 上的开发者痛点自动变成 pip 安装的 CLI 工具。完整流水线：扫描 → 聚合 → 聚类 → 代码生成 → pip 打包 → GitHub 发布。 ## 核心功能 - **Reddit Pain Scanner** — 抓取 r/programming、r/machinelearning 等子版 - **K-Means Clustering** — 将相似痛点分组，找到最密集的改进机会 - **CLI Scaffolding** — 自动生成 pip-installable CLI 骨架 - **GitHub Auto-Push** — 自动推送到 GitHub 并生成 README - **5 Tools Shipped** — cursor-doctor、claude-intel-monitor 等均用此流水线创建 ## 怎么用 ```bash python pipeline.py --source reddit --target prod ``` ## 流水线流程 ``` Reddit API → 抓取帖子 → NLP清洗 → 聚类 → 人工review → 代码生成 → pip build → GitHub push → 发布 ``` ## 成果 已经通过此流水线从 343 个痛点信号中创建了 5 个工具，包括： - cursor-doctor（142 ClawHub 下载） - claude-intel-monitor（147 ClawHub 下载） - model-cost-advisor（140 ClawHub 下载） ## 为什么给颗星？ 已输出 5 个产品仍在 0★ — 如果你用过或觉得这个思路有价值，点 ⭐ → [GitHub](https://github.com/minirr890112-byte/HermesMade)


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: adairli2504/marco-polo-test (version 1.0.1)

--- name: marco-polo-test description: A simple zero‑dependency, environment‑agnostic, and side‑effect‑free skill that helps users test if their OpenClaw instances can load skills correctly. --- # Marco Polo Test Skill ## Purpose This skill provides a minimal but verifiable interaction pattern to confirm that OpenClaw correctly loads and invokes skills. It is designed to be completely safe, stateless, and free of external dependencies. ## Core Behavior When a user's message contains the word **"marco"** (case‑insensitive, as a standalone word or part of a sentence), the skill responds with **polo** ## Usage Examples | User input | Skill response | |------------|----------------| | `marco` | `polo` | | `Marco!` | `polo` | | `Hello, marco!` | `Hello! 👋 How can I help you today? polo` | ## Testing Workflow 1. **Load the skill** – Place this `SKILL.md` in the appropriate OpenClaw skills directory. 2. **Start an OpenClaw instance** – Ensure skills are enabled. 3. **Send a message containing "marco"** – For example, type `marco` or `Hey, marco!`. 4. **Verify the response** – The instance should reply with something including `polo`. If the instance does not respond with `polo`, the skill is not being loaded or triggered correctly.


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

--- name: wacrawl description: Read-only local archive and full-text search of macOS WhatsApp Desktop chats. Snapshots WhatsApp's SQLite databases into ~/.wacrawl/wacrawl.db without modifying the app container. homepage: https://github.com/steipete/wacrawl metadata: {"clawdbot":{"emoji":"📱","os":["darwin"],"requires":{"bins":["wacrawl"]},"install":[{"id":"brew","kind":"brew","tap":"steipete/tap","formula":"wacrawl","bins":["wacrawl"],"label":"Install wacrawl (brew)"}]}} --- # Wacrawl Local read-only mirror of WhatsApp Desktop on macOS. Copies WhatsApp's SQLite databases into a temp snapshot, imports useful chat data into its own archive, and exposes scriptable search. **Does not** send messages, decrypt cloud backups, talk to WhatsApp Web, or write back into WhatsApp's app container. ## Requirements - macOS with **WhatsApp Desktop** (Mac App Store version) installed and signed in. - Full-disk access for the terminal that runs `wacrawl` (System Settings → Privacy & Security → Full Disk Access). WhatsApp's group container is sandboxed and otherwise unreadable. - `wacrawl` binary on PATH. ## Setup ```bash wacrawl doctor # verify WhatsApp data path + read access wacrawl import # copy + import chats into ~/.wacrawl/wacrawl.db wacrawl status # show row counts + last import time ``` ## State - Source (read-only): `~/Library/Group Containers/group.net.whatsapp.WhatsApp.shared` - Database: `~/.wacrawl/wacrawl.db` ## Common Commands ```bash wacrawl chats list --json wacrawl messages list --chat <id> --limit 100 --json wacrawl search "keyword" --json wacrawl sql 'SELECT count(*) FROM messages' ``` ## Integration Notes - Snapshot model: each `wacrawl import` re-snapshots WhatsApp's SQLite into a temp dir before reading, so live use of the WhatsApp app never blocks the import. - No auth flow — relies entirely on the local logged-in WhatsApp Desktop session. - Run `wacrawl import` on a PaperFang schedule (e.g. hourly) to keep the archive fresh.


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

--- name: DNS description: Configure DNS records correctly with proper TTLs, email authentication, and migration strategies. metadata: {"clawdbot":{"emoji":"🌍","os":["linux","darwin","win32"]}} --- ## Pre-Migration TTL - Lower TTL to 300s at least 48h before changing records—current TTL must expire first - Check current cached TTL before planning: `dig +nocmd +noall +answer example.com` - After migration stable 24h, raise TTL back to 3600-86400s - Test with multiple resolvers: Google (8.8.8.8), Cloudflare (1.1.1.1), local ISP—they cache independently ## Email Authentication (All Three Required) - SPF alone insufficient—DKIM and DMARC both needed for deliverability - DMARC record: `_dmarc.example.com TXT "v=DMARC1; p=quarantine; rua=mailto:[REDACTED_SECRET]"` - SPF must be single TXT record—multiple SPF records invalid; use `include:` for multiple sources - SPF ending: `-all` (reject) or `~all` (soft fail)—never `+all` or `?all` - Verify complete setup with mail-tester.com after configuration ## CAA Records - Limits which Certificate Authorities can issue certs for domain—prevents unauthorized issuance - Basic: `example.com. CAA 0 issue "letsencrypt.org"` - Wildcard requires separate entry: `CAA 0 issuewild "letsencrypt.org"` - Incident reporting: `CAA 0 iodef "mailto:[REDACTED_SECRET]"` - Without CAA, any CA can issue—set explicitly for security-conscious domains ## www Handling - Configure both apex and www—or redirect one to other; leaving www unconfigured breaks links - Pick canonical form and stick to it: www → apex OR apex → www - HTTPS redirect requires cert for both variants before redirect works - Test both URLs explicitly after setup ## Debugging Commands - `dig +trace example.com`—full resolution chain from root; reveals where problem occurs - `dig @ns1.provider.com example.com`—query authoritative nameserver directly, bypasses cache - Compare authoritative vs cached response—mismatch indicates propagation in progress - Check all relevant record types—A working doesn't mean AAAA, MX, or TXT are correct ## Cloudflare Proxy Behavior - Orange cloud (proxied) hides origin IP—breaks SSH, mail, game servers; use grey cloud for non-HTTP - Proxied records ignore your TTL setting—Cloudflare controls caching - CNAME flattening at apex works in Cloudflare but causes confusion when migrating away - Universal SSL only on proxied records—DNS-only requires origin certificate ## Wildcard Records - `*.example.com` does not match apex `example.com`—both need explicit records - Explicit subdomain record takes precedence over wildcard - Wildcard SSL certificates require separate issuance—use DNS challenge with Let's Encrypt


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: andybold/obsidian-sync (version 1.0.0)

--- name: obsidian-sync description: Sync files between Clawdbot workspace and Obsidian. Run the sync server to enable two-way file synchronization with the OpenClaw Obsidian plugin. --- # Obsidian Sync Server A secure file sync server for two-way synchronization between Clawdbot and Obsidian. > **📦 This skill is part of [obsidian-openclaw](https://github.com/AndyBold/obsidian-openclaw)** > An Obsidian plugin that lets you chat with your Clawdbot agent and sync notes between your vault and the agent's workspace. ## Quick Start ```bash SYNC_TOKEN="your-gateway-token" node scripts/sync-server.mjs ``` ## Configuration | Environment Variable | Default | Description | |---------------------|---------|-------------| | `SYNC_PORT` | `18790` | Server port | | `SYNC_BIND` | `localhost` | Bind address | | `SYNC_WORKSPACE` | `/data/clawdbot` | Root workspace path | | `SYNC_TOKEN` | (required) | Auth token (use Gateway token) | | `SYNC_ALLOWED_PATHS` | `notes,memory` | Comma-separated allowed subdirectories | ## Security - Only configured subdirectories are accessible - Path traversal (`../`) is blocked - All requests require `Authorization: Bearer <token>` - Bind to localhost; expose via Tailscale serve for remote access ## API Endpoints | Method | Endpoint | Description | |--------|----------|-------------| | GET | `/sync/status` | Health check | | GET | `/sync/list?path=notes` | List markdown files | | GET | `/sync/read?path=notes/x.md` | Read file + metadata | | POST | `/sync/write?path=notes/x.md` | Write file (conflict detection) | ## Exposing via Tailscale ```bash tailscale serve --bg --https=18790 http://localhost:18790 ``` ## Running as a Service ### User systemd service ```bash mkdir -p ~/.config/systemd/user cat > ~/.config/systemd/user/openclaw-sync.service << 'EOF' [Unit] Description=OpenClaw Sync Server After=network.target [Service] Type=simple Environment=SYNC_TOKEN=your-token-here Environment=SYNC_WORKSPACE=/data/clawdbot Environment=SYNC_ALLOWED_PATHS=notes,memory ExecStart=/usr/bin/node /path/to/skills/obsidian-sync/scripts/sync-server.mjs Restart=on-failure RestartSec=5 [Install] WantedBy=default.target EOF systemctl --user daemon-reload systemctl --user enable --now openclaw-sync loginctl enable-linger $USER # Start on boot ``` ## Obsidian Plugin This skill provides the backend for the **OpenClaw Obsidian plugin**: **[github.com/AndyBold/obsidian-openclaw](https://github.com/AndyBold/obsidian-openclaw)** The plugin provides: - 💬 **Chat sidebar** — Talk to your Clawdbot agent from Obsidian - 📁 **File actions** — Create, edit, delete notes via conversation - 🔄 **Two-way sync** — Keep notes synchronized between vault and agent - 🔒 **Secure storage** — OS keychain integration for tokens - 📋 **Audit logging** — Track all file operations Install the plugin via [BRAT](https://github.com/TfTHacker/obsidian42-brat) using: `AndyBold/obsidian-openclaw`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: obcraft/apiosk-publish (version 1.1.0)

--- name: apiosk-publish description: Publish and manage Apiosk gateway listings with signed wallet authentication, listing-group aware categorization, and update/delete operations. --- # apiosk-publish Use this skill for API publishing and lifecycle management on `https://gateway.apiosk.com`. ## When to use - You need to register a new paid API on Apiosk. - You need to update, list, or deactivate your published API. - You need to map an API to the latest listing groups (`api`, `datasets`, `compute`). - You need to send correctly signed wallet-auth headers for management endpoints. ## Required tools and files - `curl` - `jq` - `cast` (Foundry) - Wallet: - `~/.apiosk/wallet.json` (preferred, includes `address` + `private_key`) - or `APIOSK_PRIVATE_KEY` env var - or `--private-key` flag ## Management endpoints - `POST /v1/apis/register` - `GET /v1/apis/mine?wallet=0x...` - `POST /v1/apis/:slug` - `DELETE /v1/apis/:slug?wallet=0x...` ## Signed wallet auth All management calls require: - `x-wallet-address` - `x-wallet-signature` - `x-wallet-timestamp` - `x-wallet-nonce` Canonical message to sign: ```text Apiosk auth action:<action> wallet:<lowercase_wallet> resource:<resource> timestamp:<unix_seconds> nonce:<nonce> ``` Action/resource mapping: - register: `action=register_api`, `resource=register:<slug>` - update: `action=update_api`, `resource=update:<slug>` - mine: `action=my_apis`, `resource=mine:<wallet>` - delete: `action=delete_api`, `resource=delete:<slug>` ## Listing groups and categories Discovery groups in gateway: - `api` - `datasets` - `compute` Register payload currently uses `category` (not explicit `listing_type`). Use this mapping: - `api` -> `data` - `datasets` -> `dataset` - `compute` -> `compute` ## Register payload `POST /v1/apis/register`: ```json { "name": "My API", "slug": "my-api", "endpoint_url": "https://example.com", "price_usd": 0.01, "description": "My paid API", "owner_wallet": "0x...", "category": "dataset" } ``` ## Agent behavior requirements - Always sign management requests; unsigned calls should be treated as invalid. - Keep wallet value lowercased inside the signed message, even if header uses checksum case. - If `Unauthorized`, regenerate timestamp + nonce and re-sign once. - Validate HTTPS endpoint before register/update. - Use listing-group mapping above so new listings appear in the right discovery surfaces.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: k176060444-lgtm/baidu-ai-search-qianfan (version 1.0.0)

# baidu-ai-search Skill 百度 AI 搜索（智能搜索生成）：联网搜索 + AI 智能总结 + 带来源引用。 ## 功能 基于百度千帆平台的「智能搜索生成」API，输入问题返回 AI 联网总结后的答案及参考来源。 ## API 详情 - **Endpoint**: `POST https://qianfan.baidubce.com/v2/ai_search/chat/completions` - **鉴权**: `Authorization: Bearer <BAIDU_API_KEY>` - **与 baidu-search 的区别**: baidu-search 返回原始搜索结果；本 API 返回 AI 联网总结 + 引用来源 ## 核心参数 | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | `messages` | array | ✅ | 消息列表，role=user，content=问题 | | `model` | string | ✅ | 模型名，如 `ernie-4.5-turbo-32k`、`deepseek-v3` | | `search_source` | string | 可选 | 搜索引擎版本，默认 `baidu_search_v2` | | `stream` | bool | 可选 | 是否流式，默认 false | | `enable_deep_search` | bool | 可选 | 深度搜索（最多100个结果），默认 false | | `enable_corner_markers` | bool | 可选 | 是否显示来源角标，默认 true | | `search_recency_filter` | string | 可选 | 时间筛选：week/month/semiyear/year | | `resource_type_filter` | array | 可选 | 资源类型过滤，如 `[{"type":"web","top_k":10}]` | ## 使用方式 ```bash # 基础搜索 python3 baidu-ai-search/scripts/search.py '{"query":"今日股市行情","count":5}' # 带时间筛选 python3 baidu-ai-search/scripts/search.py '{"query":"杭州房价","count":5,"freshness":"month"}' # 带深度搜索 python3 baidu-ai-search/scripts/search.py '{"query":"北京旅游攻略","count":5,"deep_search":true}' ``` ## 返回格式 ```json { "answer": "AI总结的答案", "references": [ { "id": 1, "title": "网页标题", "url": "https://...", "content": "相关内容片段", "date": "2025-01-01", "type": "web" } ], "request_id": "...", "is_safe": true } ``` ## 注意事项 - 使用 `BAIDU_API_KEY` 环境变量（与 baidu-search 相同） - 每日免费额度 1000 次 - 默认使用 `deepseek-v3.2-think` 模型


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