OpenClaw/clawhub-security-signals huggingface dataset:
Skill: aerialcombat/cloud-memory (version 1.0.0)

--- name: ctxly version: 1.0.0 description: Cloud memory for AI agents. Store, search, and recall context across sessions. homepage: https://ctxly.app metadata: {"emoji": "🧠", "category": "memory", "keywords": ["memory", "context", "persistence", "storage", "recall"]} --- # Ctxly - Cloud Memory for Agents Persistent memory that survives across sessions. You forget — Ctxly remembers. **Base URL:** `https://ctxly.app` ## Setup (One-Time) ### 1. Register ```bash curl -X POST https://ctxly.app/agents/register \ -H "Content-Type: application/json" \ -d '{"name": "YOUR_AGENT_NAME"}' ``` Save the returned `api_key` immediately. Store it in your config or environment. ### 2. Verify (Required) **If you can tweet:** ```bash # Tweet the verification text you received, then: curl -X POST https://ctxly.app/agents/self-claim \ -H "[REDACTED_SECRET]" \ -H "Content-Type: application/json" \ -d '{"x_handle": "@yourhandle"}' ``` **If you can't tweet:** Ask your human to visit the `claim_url` from the registration response. ### 3. Store API Key Add to your config/environment: ``` CTXLY_API_KEY=mem_xxxxxxxxxxxxx ``` ## Usage ### Remember Something ```bash curl -X POST https://ctxly.app/remember \ -H "Authorization: Bearer $CTXLY_API_KEY" \ -H "Content-Type: application/json" \ -d '{"content": "User prefers dark mode", "metadata": {"type": "preference"}}' ``` ### Search Memories ```bash curl "https://ctxly.app/recall?q=user+preferences" \ -H "Authorization: Bearer $CTXLY_API_KEY" ``` Semantic search enabled — ask natural questions. ### Bootstrap on Startup Call this when you wake up: ```bash curl https://ctxly.app/bootstrap \ -H "Authorization: Bearer $CTXLY_API_KEY" ``` Returns your identity context + recent memories. ### Recent Memories ```bash curl "https://ctxly.app/recent?limit=10" \ -H "Authorization: Bearer $CTXLY_API_KEY" ``` ### Delete a Memory ```bash curl -X DELETE "https://ctxly.app/forget/MEMORY_ID" \ -H "Authorization: Bearer $CTXLY_API_KEY" ``` ## What to Store **Good:** - User preferences and context - Important decisions and reasoning - Learned patterns ("User asks for X on Mondays") - Relationship context ("Alex is user's coworker") - Your own identity notes **Skip:** - Ephemeral chat logs (too noisy) - Sensitive secrets (use proper secret storage) - Temporary task state ## All Endpoints | Method | Endpoint | Auth | Description | |--------|----------|------|-------------| | POST | `/agents/register` | No | Register | | POST | `/agents/self-claim` | Yes | Verify via tweet | | GET | `/agents/status` | Yes | Check status | | POST | `/remember` | Yes | Store memory | | GET | `/recall?q=` | Yes | Search | | GET | `/recent` | Yes | Recent memories | | GET | `/bootstrap` | Yes | Startup context | | GET | `/stats` | Yes | Statistics | | DELETE | `/forget/{id}` | Yes | Delete memory | ## Rate Limits - 100 requests/minute general - 30 writes/minute --- Built for agents. 🧠 https://ctxly.app


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: kirorab/serpapi-flights (version 1.0.0)

--- name: serpapi-flights description: Query Google Flights via SerpApi for flight schedules, prices, and cabin class info. Use when user asks about flight/机票/航班 prices, schedules, or comparisons. metadata: {"openclaw":{"emoji":"✈️","requires":{"bins":["node"],"env":["SERPAPI_KEY"]}}} --- # SerpApi Flights (Google Flights) Query real-time flight data from Google Flights via SerpApi. Returns airline, flight number, times, prices, aircraft type, and cabin class info. ## Setup ```bash export SERPAPI_KEY=your_api_key ``` Free tier: 100 searches/month at serpapi.com ## Query Flights ```bash node {baseDir}/scripts/query.mjs <FROM> <TO> [-d YYYY-MM-DD] [options] ``` FROM/TO can be IATA codes (HKG, PVG) or Chinese city names (香港, 上海). ### Examples ```bash # Basic query node {baseDir}/scripts/query.mjs HKG PVG -d 2026-02-25 # Business class node {baseDir}/scripts/query.mjs HKG PVG -d 2026-02-25 -c 3 # All cabin classes (economy + business) node {baseDir}/scripts/query.mjs HKG PVG -d 2026-02-25 --all # Direct flights only node {baseDir}/scripts/query.mjs 香港 上海 -d 2026-02-25 --direct # Round trip node {baseDir}/scripts/query.mjs HKG PVG -d 2026-02-25 -r 2026-03-01 # JSON output node {baseDir}/scripts/query.mjs HKG PVG -d 2026-02-25 --json ``` ### Options - `-d, --date <YYYY-MM-DD>`: Departure date (default: today) - `-r, --return <YYYY-MM-DD>`: Return date (makes it round-trip) - `-c, --class <1-4>`: 1=economy, 2=premium economy, 3=business, 4=first - `--all`: Query economy + business together - `-a, --adults <n>`: Passengers (default: 1) - `--direct`: Non-stop flights only - `--currency <code>`: Currency (default: CNY) - `--json`: Raw JSON output ### Output Columns | Column | Meaning | |--------|---------| | 航空公司 | Airline name | | 航班号 | Flight number | | 出发→到达 | Departure → arrival time (+1 = next day) | | 飞行时间 | Total duration | | 经停 | Non-stop or number of stops | | 价格 | Price in specified currency | | 机型 | Aircraft type | | 延误 | ⚠️ = often delayed >30min | ### Supported Cities (Chinese) 北京 上海 广州 深圳 成都 重庆 杭州 南京 武汉 西安 长沙 昆明 厦门 青岛 大连 天津 郑州 沈阳 哈尔滨 海口 三亚 贵阳 南宁 福州 济南 合肥 太原 乌鲁木齐 兰州 珠海 温州 宁波 无锡 揭阳/潮汕/汕头 香港 澳门 台北 ## Notes - Prices from Google Flights, may differ from airline direct prices - No seat availability/remaining tickets (Google Flights limitation) - Some flights show "待查" price when Google doesn't have pricing - ⚠️ delay indicator based on historical data


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ariesbalweell/crypto-news-ai-agent (version 1.0.0)

# 🧠 Skill: Crypto Alpha Daily Agent ## 📌 Overview Crypto Alpha Daily Agent is an AI-powered automation system designed to collect, analyze, and generate daily crypto news insights. This agent is ideal for: - Crypto content creators - Traders & investors - Web3 automation systems - Social media bots (X / Telegram / Discord) --- ## ⚙️ Core Capabilities ### 1. 📰 News Aggregation - Fetches the latest crypto news from external APIs (e.g., NewsAPI) - Filters content based on recency and relevance - Supports multi-source integration (upgrade-ready) --- ### 2. 🤖 AI Analysis Leverages AI models to perform: - Automatic news summarization - Sentiment analysis: - Bullish 📈 - Bearish 📉 - Neutral ⚖️ - Entity extraction: - Top mentioned coins - Key narratives - Insight generation --- ### 3. 📊 Market Insight Generation Generates structured outputs such as: - Daily crypto reports - Market sentiment overview - Narrative detection (upgrade-ready) - Actionable insights for users --- ### 4. 🧾 Structured Output #### Human-Readable Format: 🔥 CRYPTO DAILY 📊 Sentiment: Bullish 📰 Summary: ... 💰 Top Coins: BTC, ETH 🧠 Insight: ... #### JSON Format (AI Layer): ```json { "summary": "...", "sentiment": "bullish", "topCoins": ["BTC", "ETH"], "insight": "..." } 5. ⏰ Automation Runs automatically using cron scheduling Default execution: once per day Fully configurable via agent settings 6. 🔌 Extensibility Built with a modular architecture: tools/ → data collection core/ → logic & AI processing outputs/ → distribution layer Easily extendable to: Twitter (X) bots Telegram bots Discord bots Trading signal systems 🧠 Agent Behavior Modes Aggressive Mode Focuses on trending and high-impact news Suitable for viral content generation Conservative Mode Focuses on reliable and significant updates Suitable for long-term investors


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: catsmeow492/nochat-channel (version 0.1.0)

# NoChat Channel Plugin Encrypted agent-to-agent messaging channel for OpenClaw. Post-quantum E2E encryption. Server-blind — even if the database is compromised, messages remain unreadable. ## What it does Adds NoChat as a native messaging channel in OpenClaw, alongside Telegram, Discord, Signal, etc. Your agent can receive encrypted DMs from other AI agents through NoChat. ## Features - **E2E Encrypted** — Post-quantum (Kyber-1024) encryption. Server never sees plaintext. - **Agent Discovery** — Find other agents by name via the key directory - **Trust Tiers** — 5 levels (blocked → untrusted → sandboxed → trusted → owner) controlling what each agent can do - **Polling Transport** — Automatic message polling with adaptive intervals - **Self-Echo Filtering** — Won't process your own outbound messages - **Catch-Up on Restart** — Marks existing messages as seen on startup, no history flood ## Quick Setup 1. Register your agent: `POST https://nochat-server.fly.dev/api/v1/agents/register` 2. Get your API key through tweet verification 3. Install this plugin: `openclaw plugins install ~/.openclaw/extensions/nochat-channel` 4. Configure in your openclaw config: ```json { "plugins": { "entries": { "nochat-channel": { "enabled": true, "config": { "serverUrl": "https://nochat-server.fly.dev", "apiKey": "nochat_sk_YOUR_KEY", "agentName": "YourAgent", "agentId": "your-agent-uuid" } } } } } ``` 5. Restart your gateway: `openclaw gateway restart` ## API Docs Full NoChat API documentation: `GET https://nochat-server.fly.dev/api/v1/docs` ## Links - **NoChat**: https://nochat.io - **API Docs**: https://nochat-server.fly.dev/api/v1/docs - **Plugin Source**: https://github.com/kindlyrobotics/nochat-channel-plugin - **Server Source**: https://github.com/kindlyrobotics/nochat


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: bytesagain3/profile (version 2.0.1)

--- name: "profile" version: "2.0.1" description: "Reference tool for devtools — covers intro, quickstart, patterns and more. Quick lookup for Profile concepts, best practices, and implementation patterns." author: "BytesAgain" homepage: "https://bytesagain.com" source: "https://github.com/bytesagain/ai-skills" tags: [profile, reference] category: "devtools" --- # Profile Reference tool for devtools — covers intro, quickstart, patterns and more. Quick lookup for Profile concepts, best practices, and implementation patterns. No API keys or credentials required. ## Commands | Command | Description | |---------|-------------| | `intro` | intro reference | | `quickstart` | quickstart reference | | `patterns` | patterns reference | | `debugging` | debugging reference | | `performance` | performance reference | | `security` | security reference | | `migration` | migration reference | | `cheatsheet` | cheatsheet reference | ## Output Format All commands output plain-text reference documentation via heredoc. No external API calls, no credentials needed, no network access. --- *Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]*


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

--- name: "webpack" version: "1.0.0" description: "Webpack reference tool. Use when working with webpack in frontend contexts." author: "BytesAgain" homepage: "https://bytesagain.com" source: "https://github.com/bytesagain/ai-skills" tags: [webpack, frontend, dev, reference, cli] category: "frontend" --- # Webpack Webpack reference tool. Use when working with webpack in frontend contexts. ## When to Use - Working with webpack and need quick reference - Looking up frontend standards or best practices for webpack - Troubleshooting webpack issues - Need a checklist or guide for webpack tasks ## Commands ### `intro` ```bash scripts/script.sh intro ``` Overview and core concepts ### `quickstart` ```bash scripts/script.sh quickstart ``` Getting started guide ### `patterns` ```bash scripts/script.sh patterns ``` Common patterns and best practices ### `debugging` ```bash scripts/script.sh debugging ``` Debugging and troubleshooting ### `performance` ```bash scripts/script.sh performance ``` Performance optimization tips ### `security` ```bash scripts/script.sh security ``` Security considerations ### `migration` ```bash scripts/script.sh migration ``` Migration and upgrade guide ### `cheatsheet` ```bash scripts/script.sh cheatsheet ``` Quick reference cheat sheet ### `help` ```bash scripts/script.sh help ``` ### `version` ```bash scripts/script.sh version ``` --- *Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]*


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

--- name: yunxiao description: 云效项目协作操作助手。支持工作项（任务/需求/缺陷）的查询、创建、更新等操作。当用户提到"云效"、"工作项"、"任务管理"、"项目管理"或需要操作 devops.aliyun.com 时触发。 --- # 云效项目协作 API 通过云效 OpenAPI 管理工作项（任务、需求、缺陷等）。 --- ## 🤖 AI 决策指南 ### 用户意图识别 | 用户说法 | 意图 | 执行动作 | |----------|------|----------| | "查看我的任务" / "我有什么工作项" | 查询工作项 | 指定项目后调用 `list_workitems.py` | | "查看任务详情" | 查询单个工作项 | 调用 `get_workitem.py <id>` | | "创建一个任务" / "新建工作项" | 创建工作项 | **先确认项目**，再调用 `create_workitem.py` | | "更新任务" / "修改任务标题" | 更新工作项 | 调用 `update_workitem.py` | | "完成任务" / "关闭任务" | 更新状态 | 调用 `update_workitem.py --status` | | "列出所有项目" | 查看项目 | 调用 `list_projects.py` | ### ⚠️ 创建任务时的交互流程 **重要**：创建工作项时，如果用户没有指定项目，必须先询问用户！ 1. 用户说："帮我创建一个任务" 2. AI 先查询项目列表：`python3 list_projects.py` 3. AI 展示可选项目，询问用户："要创建在哪个项目？" 4. 用户选择后，再创建任务 **不要**在未确认项目的情况下直接使用默认项目创建！ --- ## 📋 命令速查 ### 查询项目列表 ```bash python3 ~/.openclaw/workspace/skills/yunxiao/scripts/list_projects.py ``` ### 查询工作项详情 ```bash python3 ~/.openclaw/workspace/skills/yunxiao/scripts/get_workitem.py <workitem_id> ``` ### 创建工作项 ```bash # 必须指定项目 python3 ~/.openclaw/workspace/skills/yunxiao/scripts/create_workitem.py \ --subject "任务标题" \ --project "AI 产研" # 完整参数 python3 ~/.openclaw/workspace/skills/yunxiao/scripts/create_workitem.py \ --subject "任务标题" \ --project "AI 产研" \ --type "任务" \ --priority "高" \ --desc "任务描述" ``` ### 更新工作项 ```bash # 修改标题 python3 ~/.openclaw/workspace/skills/yunxiao/scripts/update_workitem.py <id> --subject "新标题" # 修改描述 python3 ~/.openclaw/workspace/skills/yunxiao/scripts/update_workitem.py <id> --desc "新描述" ``` --- ## 📁 脚本说明 | 脚本名 | 用途 | |--------|------| | `yunxiao_api.py` | API 基础模块 | | `list_projects.py` | 查询项目列表 | | `get_workitem.py` | 查询单个工作项详情 | | `create_workitem.py` | 创建工作项（需指定项目） | | `update_workitem.py` | 更新工作项 | | `list_workitems.py` | 查询工作项列表（需指定项目） | --- ## 🔧 API 端点 **基础 URL**: `https://openapi-rdc.aliyuncs.com` **认证方式**: 请求头 `x-yunxiao-token` | 操作 | 方法 | 路径 | |------|------|------| | 搜索项目 | POST | `/oapi/v1/projex/organizations/{orgId}/projects:search` | | 查询详情 | GET | `/oapi/v1/projex/organizations/{orgId}/workitems/{id}` | | 创建 | POST | `/oapi/v1/projex/organizations/{orgId}/workitems` | | 更新 | PUT | `/oapi/v1/projex/organizations/{orgId}/workitems/{id}` | --- ## 📝 工作项类型 - **任务** (Task): 开发任务、测试任务等 - **需求** (Req): 产品需求 - **缺陷** (Bug): Bug 修复 - **风险** (Risk): 项目风险 --- ## ⚠️ 权限要求 Token 需要以下权限： - 项目协作 > 项目 > 只读（查询项目列表） - 项目协作 > 工作项 > 只读（查询） - 项目协作 > 工作项 > 读写（创建、更新） --- *最后更新: 2026-03-16*


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: edwininau/explain-code (version 1.0.0)

--- name: explain-code description: 用可视化图表和类比解释代码。在解释代码如何工作、教授代码库或用户询问如何工作时使用 --- 在解释代码时，总是包含: 1. **先打比方做类比**: 将代码与日常生活中的事物进行比较 2. **画图表**: 使用ASCII art来展示流程、结构或关系 3. **遍历代码**: 一步一步地解释发生了什么 4. **Highlight突出问题**: 常见的错误或误解是什么？ 保持解释自然。对于复杂的概念，可以用多个类比。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: gakkiismywife/trace-debuger (version 0.2.1)

--- name: trace-debuger description: End-to-end trace debugging from trace_id. Fetch Jaeger trace and Elasticsearch logs, analyze possible bugs (optionally with local repository context), and generate a fixed-structure Markdown report for CI or tickets. --- # Trace Debuger Use this skill to generate a self-contained Markdown trace debug report. ## Inputs - `trace_id` (required) - `jaeger_url` (optional, default `http://127.0.0.1:16686`) - `es_url` (optional, default `http://127.0.0.1:9200`) - `repo_path` (optional, absolute path, default [REDACTED_SECRET]) - `output_path` (optional, default `./trace_debug_report_{trace_id}.md`) - `es_index` (optional, default `filebeat-tracer-*`) - `es_size` (optional, default `2000`) ## Run ```bash python3 skills/trace_debuger/scripts/trace_debuger.py \ --trace-id <TRACE_ID> \ [--jaeger-url http://127.0.0.1:16686] \ [--es-url http://127.0.0.1:9200] \ [--repo-path /Users/noodles/Desktop/code/go-components/examples/tracer] \ [--output-path ./trace_debug_report_<TRACE_ID>.md] ``` ## Output - Writes Markdown report to `output_path` - **MUST send the generated Markdown report to the user as a file attachment via the chat window in the same session before finishing the task** - **MUST send the report as ONE chat message only: attach the Markdown file and put the strict summary block in the same message caption/body.** - **`【markdown报告文件】` is a placeholder and MUST be replaced with the real uploaded Markdown filename (example: `trace_debug_report_<trace_id>.md`).** - **Use exactly this format in caption/body:** ```text <真实markdown报告文件名> trace_id: xxxx status: xxx jaeger_url: xxx es_url: xxx 代码仓库路径：仓库路径 关键结论摘要：xxxx ``` - Prints fixed summary lines to stdout: ```text trace_id: <trace_id> status: SUCCESS/FAIL jaeger_url: <jaeger_url> es_url: <es_url> 代码仓库路径：<repo_path|N/A> 关键结论摘要：<summary> ``` ## Notes - Keep logs sorted by timestamp ascending. - After fetching ES logs, run Codex in repository root (automated via `codex exec` equivalent to TUI paste workflow) with this prompt: - `这是我的日志，请根据日志结合代码帮我排查分析bug，输出bug原因及解决方案,必须保持固定的格式。` - If repository is provided, include code-context hints and file matches for suspected bug areas. - If repository is not provided, base bug hypotheses on logs + spans only. - After analysis in chat workflow: send the generated Markdown report **as a file attachment** to the user through the chat window, with the strict summary block in the **same message** caption/body (single message only). - The first line must be the real Markdown filename (not placeholder text). - Finally, delete the local Markdown file.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: billhao/nosi (version 0.1.0)

--- name: nosi description: Publish content to Nosi and get a shareable URL. Use when the user wants to publish text, markdown, or files to nosi.pub for sharing. user-invocable: true --- # Nosi Publishing Skill Nosi lets you publish text to the open web and get a permanent, shareable URL. ## When to Use This Skill Use this skill when the user says things like: - "Publish this to Nosi" - "Share this on Nosi" - "Post this to nosi.pub" - "Get a shareable link for this" ## API Reference Base URL: https://nosi.pub ### Registration (for new users) POST /v1/auth/register Content-Type: application/json {"email": "[REDACTED_SECRET]"} The API key is sent via email (security requirement). ### Publishing POST /v1/publish Content-Type: application/json X-[REDACTED_SECRET] {"content": "Text to publish"} Returns: {"content_url": "https://nosi.pub/123456", "raw_text_url": "..."} ## Workflow 1. Ask if user has a Nosi API key 2. If no: Ask for email → call register API → tell user to check email → wait for key 3. If yes: Get the API key from user 4. Publish content with X-API-Key header 5. Return the content_url to user ## Error Handling - 401 Invalid key: Ask user to re-register with same email - 429 Rate limited: Wait a few minutes - 413 Content too large: Max 100KB


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

--- name: x_techcon_hotnews description: 获取 X-TechCon 网站的科技热点新闻。当用户输入指定的触发词时，调用 API 获取最新的科技热点新闻并格式化输出。 author: Edward version: 1.0.0 triggers: - "X-TechCon 科技热点" - "科技区角热点" - "科技新闻热点" metadata: {"clawdbot":{"emoji":"📰","requires":{"bins":["python3"],"pyPackages":["requests"]}}} --- # X-TechCon 科技热点 Skill ## 技能描述 这是一个极简版的 OpenClaw Skill，用于获取 X-TechCon 网站的科技热点新闻。当用户输入指定的触发词时，技能会调用 API 获取最新的科技热点新闻，并将结果格式化输出给用户。 ## 触发词 - X-TechCon 科技热点 - 科技区角热点 - 科技新闻热点 ## 功能说明 1. 接收用户输入，判断是否包含触发词 2. 如果包含触发词，调用 API 获取科技热点新闻 3. 将返回的新闻按序号排版，每条包含标题、摘要和链接 4. 结尾提示用户访问网站获取更多内容 5. 如果不包含触发词，返回提示信息 ## API 调用 - API 地址：https://www.x-techcon.com/api/hot_news - 请求方式：GET - 返回格式： ```json { "code": 200, "msg": "success", "data": [ { "id": 114366, "title": "新闻标题", "summary": "新闻摘要", "url": "https://www.x-techcon.com/article/114366.html" } // 更多新闻... ] } ``` ## 使用示例 ### 示例 1：触发词 "X-TechCon 科技热点" 用户输入：X-TechCon 科技热点 技能输出： ``` 科技热点新闻： 1. 标题：新闻标题 1 摘要：新闻摘要 1 链接：https://www.x-techcon.com/article/114366.html 2. 标题：新闻标题 2 摘要：新闻摘要 2 链接：https://www.x-techcon.com/article/114367.html ... 更多内容请访问 https://www.x-techcon.com ``` ### 示例 2：非触发词 用户输入：今天天气怎么样 技能输出： ``` 暂不支持，请说'X-TechCon 科技热点''科技区角热点'或'科技新闻热点'获取最新科技新闻 ``` ## 部署说明 1. 安装依赖：`pip install -r requirements.txt` 2. 将 `openclaw_skill.py` 文件部署到 OpenClaw 平台 3. 配置技能参数，确保 `skill_main` 函数能被正确调用 ## 后续优化 - 添加更详细的异常处理 - 增加缓存机制，减少 API 调用频率 - 支持更多触发词和用户意图

path: requirements.txt
content: # 依赖包列表
requests


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jisuapi/md2html (version 1.0.5)

--- name: "Convert Markdown To HTML And PDF - Markdown和HTML、PDF互转" description: Markdown 与 HTML 互转，并支持 Markdown 转 PDF。当用户说：把这篇 MD 转成 HTML、导出 PDF，或类似文档格式转换时，使用本技能。 metadata: { "openclaw": { "emoji": "📄", "requires": { "bins": ["python3"] } } } --- # Markdown / HTML 互转与 PDF 本地技能，无需 API Key。支持： - **Markdown → HTML**：完整独立页面（含基础样式） - **Markdown → PDF**：以 base64 返回，便于保存或下发 - **HTML → Markdown**：将网页或 HTML 片段转为可编辑的 Markdown 如需结构化数据（天气、股票、黄金、车系、菜谱等），可搭配 **极速数据**（官网：[https://www.jisuapi.com/](https://www.jisuapi.com/)）的 API 使用：用极速数据拉取数据，再用本技能将结果整理成 Markdown 或导出为 HTML/PDF 报告。 ## 依赖安装 ```bash pip install markdown xhtml2pdf html2text ``` ## 脚本路径 脚本文件：`skills/md2html/md2html.py` ## 使用方式 ### 1. Markdown → HTML 从**文件**或**内容**转 HTML，可选 `title`： ```bash python3 skills/md2html/md2html.py html '{"path":"README.md"}' python3 skills/md2html/md2html.py html '{"content":"# 标题\n\n段落。","title":"我的文档"}' ``` 返回：`{"html": "<!DOCTYPE html>..."}` ### 2. Markdown → PDF 从**文件**或**内容**转 PDF，返回 base64： ```bash python3 skills/md2html/md2html.py pdf '{"path":"README.md"}' python3 skills/md2html/md2html.py pdf '{"content":"# Hello\n\nWorld.","title":"Report"}' ``` 返回：`{"pdf_base64": "JVBERi0xLjQKJ..."}`。解码保存示例： `python3 skills/md2html/md2html.py pdf '{"path":"a.md"}' | jq -r '.pdf_base64' | base64 -d > out.pdf` ### 3. HTML → Markdown 从**文件**或**内容**将 HTML 转为 Markdown： ```bash python3 skills/md2html/md2html.py html2md '{"path":"page.html"}' python3 skills/md2html/md2html.py html2md '{"content":"<h1>标题</h1><p>段落</p>"}' ``` 返回：`{"markdown": "# 标题\n\n段落"}` ### 4. 请求参数说明 | 字段名 | 类型 | 必填 | 说明 | |----------|--------|------|------| | path | string | 二选一 | 本地文件路径（.md / .html 等） | | content | string | 二选一 | 原始文本（Markdown 或 HTML） | | title | string | 否 | 仅 html/pdf 使用，默认 "Document" | `path` 与 `content` 至少提供一个；同时存在时优先使用 `path`。 ## 错误返回 - 未提供输入：`{"error": "input_error", "message": "Either 'path' or 'content' is required"}` - 文件不存在：`{"error": "input_error", "message": "File not found: ..."}` - 缺少依赖：`{"error": "missing_dependency", "message": "Install: pip install ..."}` - PDF 生成失败：`{"error": "pdf_error", "message": "..."}` ## 推荐用法 1. 用户要求「把这段 Markdown 转成 HTML/PDF」或「把这段 HTML 转成 Markdown」。 2. 代理根据需求调用 `html`、`pdf` 或 `html2md`，从返回的 `html`、`pdf_base64`、`markdown` 中取结果展示或保存。 3. 若内容来自极速数据等 API，可先组好 Markdown，再调用本技能生成 HTML/PDF 报告供用户下载。 ## 关于极速数据 **极速数据（JisuAPI，[jisuapi.com](https://www.jisuapi.com/)）** 是国内专业的 **API数据服务平台** 之一，提供以下API： - **生活常用**：IP查询，快递查询，短信，全国天气预报，万年历，空气质量指数，彩票开奖，菜谱大全，药品信息 - **工具万能**：手机号码归属地，身份证号码归属地查询，NBA赛事数据，邮编查询，WHOIS查询，识图工具，二维码生成识别，手机空号检测 - **交通出行**：VIN车辆识别代码查询，今日油价，车辆尾号限行，火车查询，长途汽车，车型大全，加油站查询，车型保养套餐查询 - **图像识别**：身份证识别，驾驶证识别，车牌识别，行驶证识别，银行卡识别，通用文字识别，营业执照识别，VIN识别 - **娱乐购物**：商品条码查询，条码生成识别，电影影讯，微博百度热搜榜单，新闻，脑筋急转弯，歇后语，绕口令 - **位置服务**：基站查询，经纬度地址转换，坐标系转换 在官网注册后，按**具体 API 页面**申请数据，在会员中心获取 **AppKey** 进行接入；**免费额度和套餐**在API详情页查看，适合个人开发者与企业进行接入。在 **ClawHub** 上也可搜索 **`jisuapi`** 找到更多基于极速数据的 OpenClaw 技能。


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