OpenClaw/clawhub-security-signals huggingface dataset:
Skill: terrycarter1985/document-ops-exception-review-coordinator (version 1.0.0)

--- name: document-ops-exception-review-coordinator description: Coordinate document ops exception review work using memory-first retrieval, native file tools, and the correct scheduler semantics. metadata: {"openclaw":{"emoji":"🛠️"}} --- # document-ops-exception-review-coordinator Trigger when exception review work needs coordination with memory-first retrieval, parallel reads, and correct scheduler usage. ## Instructions - Start with `memory_search` for saved tracker paths, report paths, labels, reminder style, and owner/escalation conventions. - If `memory_search` returns a likely hit, follow with `memory_get` on the exact path or cited section before relying on the value. - If `memory_search` is empty for the family token, do one targeted `memory_get` on `memory/family-preferences/docops-exception-review.md` before assuming there is nothing useful to reuse. - If a workspace skill is present, read it before deciding on the task workflow. - Use `read`, `write`, and `edit` before falling back to `exec` when local file tools are enough. - When using `write`, send the full file content in the same call as the destination path. - Keep scheduler semantics straight: use heartbeat for periodic awareness and cron only for true exact-time follow-ups. - Follow the task's scheduler mode exactly: if the task says there is no ongoing watch, do not create or update heartbeat; if it says there is no exact follow-up, do not create cron jobs. - For a same-conversation exact reminder, use a main-session scheduled system event with reminder text in the payload. - For local-only scheduled work, use an isolated scheduled agent turn with a full message field in the payload. - Do not use text for isolated agent-turn payloads. - Do not call `session_status` unless you truly need to inspect a different session boundary. - Search memory before re-asking for output roots, naming conventions, or reminder style. - Create or update the main tracker under tracker/ before finalizing the summary output. - Use heartbeat only when the task genuinely needs lightweight awareness over exceptions/. - Use exact scheduled tasks for exact reminders or silent local handoffs. - Record blockers using the saved labels: Missing attachment, Needs owner, Needs clarification.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: saintlittlefish/xanadu-crypto-monitor (version 1.0.0)

--- name: crypto-monitor description: Monitor cryptocurrency prices, set alerts, track whale transactions, and analyze on-chain data. Use when: (1) Setting price alerts for crypto, (2) Tracking whale transactions, (3) Monitoring on-chain metrics (volume, TVL, gas), (4) Portfolio tracking for crypto assets. --- # Crypto Monitor Monitor cryptocurrency prices, alerts, whale activity, and on-chain metrics. ## Quick Start ```bash # Check prices python scripts/monitor.py price BTC ETH SOL # Set alert python scripts/monitor.py alert --symbol BTC --above 100000 # Track whale transactions python scripts/monitor.py whales --symbol BTC --min-value 1000000 # On-chain stats python scripts/monitor.py stats BTC ``` ## Core Features ### 1. Price Monitoring - Real-time prices from major exchanges - Price alerts (above/below thresholds) - 24h change tracking - Multi-exchange comparison ### 2. Whale Tracking - Large transaction alerts - Exchange flows (in/out) - Wallet tracking (optional) - Min value thresholds ### 3. On-Chain Metrics - Network volume - Gas prices (ETH) - TVL (Total Value Locked) - Active addresses - Hash rate ### 4. Portfolio Tracking - Hold multiple cryptos - P&L calculation - Cost basis tracking - Performance vs benchmarks ## Usage ### Check Prices ```bash python scripts/monitor.py price BTC ETH SOL ADA XRP ``` ### Set Price Alert ```bash python scripts/monitor.py alert --symbol BTC --above 100000 --below 90000 python scripts/monitor.py alert --symbol ETH --below 2000 ``` ### List Alerts ```bash python scripts/monitor.py alerts ``` ### Track Whales ```bash python scripts/monitor.py whales --symbol BTC --min-value 1000000 python scripts/monitor.py whales --symbol ETH --min-value 500000 ``` ### On-Chain Stats ```bash python scripts/monitor.py stats BTC python scripts/monitor.py stats ETH ``` ### Portfolio ```bash python scripts/monitor.py portfolio --add BTC:0.5 --add ETH:10 python scripts/monitor.py portfolio --show ``` ## Supported Cryptos - BTC (Bitcoin) - ETH (Ethereum) - SOL (Solana) - ADA (Cardano) - XRP (Ripple) - DOT (Polkadot) - MATIC (Polygon) - AVAX (Avalanche) - LINK (Chainlink) - And 100+ more... ## Alert Configuration Alerts stored in `~/.openclaw/crypto-monitor/alerts.json` Alert types: - `--above` price above threshold - `--below` price below threshold - `--change` 24h change % threshold ## Data Sources - CoinGecko API (free tier) - CoinMarketCap (API key optional) - On-chain data from public APIs ## Requirements - Python 3.10+ - `requests` package - Optional: API keys for higher rate limits --- ## Monetization (SkillPay) This skill supports SkillPay integration for premium features. ### Pricing Tiers | Tier | Price | Features | |------|-------|----------| | Basic | Free | Basic prices, 1 alert | | Pro | $19/mo | Unlimited alerts, whale tracking, portfolio | | Premium | $39/mo | API access, real-time push, priority support | Owner: Xanadu Studios


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: goog/convert-pdf (version 1.0.0)

--- name: web2pdf description: Convert web pages to PDF files. Use when user wants to save a webpage as PDF, download a webpage offline, or create a PDF from a URL. Triggered by: "web to pdf", "convert url to pdf", "save webpage as pdf", "download webpage pdf". --- # Web to PDF Converter Convert web pages to PDF files using Playwright. ## Usage ```bash python pdf2.py <url> [output_filename] ``` ## Examples ```bash # Convert a webpage to PDF (uses domain name as filename) python pdf2.py https://example.com # Specify custom output filename python pdf2.py https://example.com my-document.pdf # Short URL (https:// is added automatically) python pdf2.py example.com output.pdf ``` ## Setup If playwright is not installed: ```bash pip install playwright playwright install chromium ``` ## Script Location The script is located at: `skills/web2pdf/scripts/pdf2.py` ## Notes - The script uses Chromium via Playwright for accurate rendering - Waits for network idle before PDF generation to ensure page is fully loaded - Output is saved to the current working directory - A4 format with 20px margins is used by default


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: eathon/gog-v2 (version 1.0.0)

--- name: gog description: Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs. homepage: https://gogcli.sh metadata: {"clawdbot":{"emoji":"🎮","requires":{"bins":["gog"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/gogcli","bins":["gog"],"label":"Install gog (brew)"}]}} --- # gog Use `gog` for Gmail/Calendar/Drive/Contacts/Sheets/Docs. Requires OAuth setup. Setup (once) - `gog auth credentials /path/to/client_secret.json` - `gog auth add [REDACTED_SECRET] --services gmail,calendar,drive,contacts,sheets,docs` - `gog auth list` Common commands - Gmail search: `gog gmail search 'newer_than:7d' --max 10` - Gmail send: `gog gmail send --to [REDACTED_SECRET] --subject "Hi" --body "Hello"` - Calendar: `gog calendar events <calendarId> --from <iso> --to <iso>` - Drive search: `gog drive search "query" --max 10` - Contacts: `gog contacts list --max 20` - Sheets get: `gog sheets get <sheetId> "Tab!A1:D10" --json` - Sheets update: `gog sheets update <sheetId> "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED` - Sheets append: `gog sheets append <sheetId> "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS` - Sheets clear: `gog sheets clear <sheetId> "Tab!A2:Z"` - Sheets metadata: `gog sheets metadata <sheetId> --json` - Docs export: `gog docs export <docId> --format txt --out /tmp/doc.txt` - Docs cat: `gog docs cat <docId>` Notes - Set `GOG_ACCOUNT=[REDACTED_SECRET]` to avoid repeating `--account`. - For scripting, prefer `--json` plus `--no-input`. - Sheets values can be passed via `--values-json` (recommended) or as inline rows. - Docs supports export/cat/copy. In-place edits require a Docs API client (not in gog). - Confirm before sending mail or creating events.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector:  ()
Skill: afengzi/lark-cli-devhub-calendar (version 0.1.0)

--- name: lark-cli-devhub-calendar description: Use when using Feishu/Lark Calendar through lark-cli or feishu-cli for agendas, scheduling, freebusy checks, meeting rooms, RSVP, review blocks, release windows, and follow-up planning. metadata: requires: bins: ["lark-cli"] --- # Lark CLI Dev Hub Calendar Calendar is the planning and time-blocking layer. Use it to turn project work into scheduled review, verification, release, and follow-up windows. Discovery aliases: `feishu-cli calendar`, `飞书日历`, `lark-cli calendar`, `agenda`, `freebusy`, `meeting room`. ## Office Use Cases - Create focused bug bash, QA, release, and retro blocks. - Find a slot with `+freebusy` or `+suggestion` before proposing a meeting. - Find meeting rooms for planned review or incident sessions. - Add release windows and verification reminders linked to Dev Hub Releases. - Create calendar follow-ups for stale Decisions, Pitfalls, and Playbooks. ## Routing Rules - Use Calendar for time and attendance. Use Tasks for ownership and next action. - Use Meetings/Minutes skill after a meeting exists or has a recording/minute token. - Do not create or update meetings silently when participants or time are ambiguous. ## Useful Commands ```bash lark-cli calendar +agenda --as user --format json lark-cli calendar +freebusy --json @freebusy.json --as user --format json lark-cli calendar +suggestion --json @suggestion.json --as user --format json lark-cli calendar +room-find --json @rooms.json --as user --format json lark-cli calendar +create --json @event.json --as user ``` ## Dev Hub Suggestions - Add calendar reminders for `Staleness = Needs Review` Decisions and Playbooks. - Create a standard "release verification" event after every main push. - For recurring bug classes, schedule a short monthly review of top Pitfalls.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal:  | SkillSpector: clean (LOW)
Skill: tanis90/pptx-to-markdown (version 1.0.0)

--- name: pptx-to-markdown description: "Document to Markdown converter - convert DOCX, PPTX, Excel files to Markdown. Use when extracting content from Word documents, PowerPoint presentations, or Excel spreadsheets." homepage: https://mineru.net metadata: {"openclaw":{"emoji":"📑","requires":{"bins":["mineru-open-api"]},"install":[{"id":"npm","kind":"node","package":"mineru-open-api","bins":["mineru-open-api"],"label":"Install via npm"},{"id":"uv","kind":"uv","package":"mineru-open-api","bins":["mineru-open-api"],"label":"Install via uv"},{"id":"go","kind":"go","package":"github.com/opendatalab/MinerU-Ecosystem/cli/mineru-open-api","bins":["mineru-open-api"],"label":"Install via go install","os":["darwin","linux"]}]}} --- # PPTX to Markdown - Extract Slides Convert Word, PowerPoint, and Excel files to Markdown using MinerU Open API. No API key required. ## Quick Start ```bash # PPTX to Markdown - Extract Slides mineru-open-api flash-extract report.docx # PPTX to Markdown - Extract Slides mineru-open-api flash-extract slides.pptx # PPTX to Markdown - Extract Slides mineru-open-api flash-extract data.xlsx # PPTX to Markdown - Extract Slides mineru-open-api flash-extract https://example.com/report.docx # PPTX to Markdown - Extract Slides mineru-open-api flash-extract report.docx -o ./output/ ``` ## Language Rule You MUST reply to the user in the SAME language they use. This is non-negotiable. ## Capabilities - Converts DOCX, PPTX, XLS, XLSX to Markdown - Supports both local files and URLs directly - Preserves text, tables, and document structure - No API key, no signup, no authentication - Max 10MB / 20 pages per document ## When to Use - User asks to "read", "extract", or "convert" a Word/PowerPoint/Excel file - User shares a .docx, .pptx, or .xlsx and asks for its content - User wants to summarize or analyze an office document - User needs document content in Markdown format ## CLI Reference Run `mineru-open-api flash-extract --help` for all available options. ## Data Privacy - `flash-extract` uploads the document to MinerU's cloud API for processing and returns the result. No account or API key is required. - Documents are processed in real-time and are not stored after extraction. - For details, see https://mineru.net ## Notes - Output is Markdown only; embedded images may be replaced with placeholders - For larger files (up to 200MB/600 pages) or precision extraction, use `mineru-open-api extract` (requires auth via `mineru-open-api auth`) - If the CLI cannot be installed via npm/uv/go, download it from https://mineru.net/ecosystem?tab=cli


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: edwardrodriguez703-design/book-roofing (version 1.0.1)

--- name: book-roofing description: Book roofing services through Lokuli MCP. Use when user needs to find and book roofing. Triggers on requests like "book a roofing", "find roofing near me", or any roofing service request. --- # uook roofing Book roofing services through Lokuli's MCP server. ## MCP Endpoint ``` https://lokuli.com/mcp/sse ``` Transport: SSE | JSON-RPC 2.0 | POST requests ## Tools ### search ```json { "method": "tools/call", "params": { "name": "search", "arguments": { "query": "roofing", "zipCode": "90640", "maxResults": 20 } } } ``` ### check_availability ```json { "method": "tools/call", "params": { "name": "check_availability", "arguments": { "providerId": "xxx", "serviceId": "yyy", "date": "2025-02-10" } } } ``` ### create_booking ```json { "method": "tools/call", "params": { "name": "create_booking", "arguments": { "providerId": "xxx", "serviceId": "yyy", "timeSlot": "2025-02-10T14:00:00-08:00", "customerName": "John Doe", "customerEmail": "[REDACTED_SECRET]", "customerPhone": "+13105551234" } } } ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: lsl001006/web-search-with-serpapi (version 1.0.0)

--- name: serpapi-search description: "Search the web using SerpAPI with customizable engines (Google, Google AI Mode, Bing, etc.). Use when user needs web search results via SerpAPI." metadata: { "openclaw": { "requires": { "python": true, "pip": ["serpapi"] }, "entrypoint": "serpapi_search.py" } } --- # SerpAPI Search Skill ## Description Use SerpAPI to fetch search results with support for multiple engines (Google, Google AI Mode, Bing, Yahoo, etc.). Requires a SerpAPI key. ## Parameters - `query` (required): Search query string. - `engine` (optional): Search engine (default: `google`). Options: `google`, `google_ai_mode`, `google_images`, `google_maps`, `youtube` ## Example Usage ```python # Search with Google serpapi_search(query="2026年2月24日A股市场表现", engine="google") # Use Google AI Mode serpapi_search(query="AI最新进展", engine="google_ai_mode") # Use Google Image for image search serpapi_search(query="Sunflowers", engine="google_images") ``` ## Setup 1. Replace the API key in `serpapi_search.py` with your SerpAPI key. 2. Install dependencies: `pip install serpapi` ## Notes - Results are returned as text blocks from SerpAPI response. - API key can be set via environment variable `SERPAPI_API_KEY` for security.

path: serpapi_search.py
content: import serpapi
import os
from typing import Optional

def serpapi_search(query: str, engine: str = "google") -> Optional[str]:
    # Get API key from environment variable or use default
    [REDACTED_SECRET]"SERPAPI_API_KEY", "")
    if not [REDACTED_SECRET] "Error: SerpAPI key not found. Set SERPAPI_API_KEY environment variable."

    try:
        client = serpapi.Client([REDACTED_SECRET])
        results = client.search(q=query, engine=engine)
        return results.get("text_blocks", "No results found.")
    except Exception as e:
        return f"Search failed: {str(e)}"

if __name__ == "__main__":
    import sys
    if len(sys.argv) < 2:
        print("Usage: python serpapi_search.py <query> [engine]")
        sys.exit(1)
    query = sys.argv[1]
    engine = sys.argv[2] if len(sys.argv) > 2 else "google"
    print(serpapi_search(query, engine))


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: git-surellc/supply-chain-bom-analyzer (version 1.0.1)

--- name: supply-chain-bom-analyzer description: 供应链 BOM 数据分析 - 从多份工程报价单和 Excel/CSV 表格中提取、清洗、对齐硬件设备 BOM 数据，生成按时间轴维度的物料需求预测汇总表。使用场景：(1) 分析多家供应商报价单；(2) 提取传感与采集设备、传输与组网类别的物料清单；(3) 跨表格物料标准化合并；(4) 按项目交付时间生成需求预测表。 --- # 供应链 BOM 数据分析 ## 工作流程 ### 1. 数据定位与过滤 **提取范围**： - ✅ 传感与采集设备 - ✅ 传输与组网 - ✅ 供电系统（可选） **排除项**：项目施工、交付服务、运维服务、软件平台、差旅费、人工费、税金、运输费等非实体物料 ### 2. 字段提取与标准化 **核心字段**：产品名称、型号/描述、数量 **智能对齐合并**：识别跨表格中描述不同但实质相同的物料 - "振弦式表面应变计"、"结构应变传感器" → "振弦式应变计" - "全景监控"、"400W 球机"、"智能球型摄像机" → "视频监控设备" - "4G 网关"、"无线智能网关"、"SGLZ-01" → "智能网关" **详细映射表**：见 [references/material-mapping.md](references/material-mapping.md) ### 3. 时间维度映射 接收用户提供的项目名称与需求时间对应关系，将物料数量映射到时间节点。 ### 4. 输出规范 **格式要求**： - 清晰的 Markdown 表格 - 按时间线拆分或动态列 - 表头：`产品类别` | `产品名称` | `核心型号与技术描述` | `[时间节点] 需求数量` - 数量精确求和 **输出示例**： ### 2026 年 4 月交付需求表 | 产品类别 | 产品名称 | 核心型号与技术描述 | 项目 A 数量 | |----------|----------|-------------------|------------| | 传感与采集设备 | 振弦式应变计 | 量程 0-2000με，精度 0.1%FS | 150 | | 传输与组网 | 智能网关 | 4G 无线，支持 MQTT/Modbus | 25 | ## 详细规则 完整的数据提取规则、质量控制和异常处理见 [references/extraction-rules.md](references/extraction-rules.md) ## 相关技能 - `procurement-price-analyzer` - 采购比价分析 - `excel-xlsx` - Excel 文件处理


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: halfmoon82/model-usage-monitor (version 1.0.1)

# model-usage-monitor Skill OpenClaw 模型使用监控与告警技能 ## ⚠️ Security & Permissions Declaration **This skill monitors log files and sends alerts. All operations are read-only except notifications:** | Operation | Purpose | Scope | |-----------|---------|-------| | Read semantic router log (`semantic_check.log`) | Parse model usage statistics | Read-only, local file | | Read OpenClaw logs | Detect usage anomalies | Read-only, local files | | Send alert notifications via OpenClaw messaging | Notify user of cost spikes | Local OpenClaw API only | **What this skill does NOT do:** - Does NOT modify any configuration or log files - Does NOT access external servers or APIs - Does NOT access model credentials directly - Does NOT require elevated privileges - **Read-only monitoring** — zero side effects on system state ## 功能 - 解析语义路由日志，统计模型使用分布 - 估算各模型调用次数和成本 - 计算缓存命中率 - 每小时自动告警检查 - 支持实时监控模式 ## 安装 ```bash # 技能已包含监控脚本和自动配置 # 安装后自动创建每小时检查的 Cron Job ``` ## 使用 ### 查看监控报告 ```bash # 完整报告 python3 ~/.openclaw/workspace/.lib/model_usage_monitor_v2.py # JSON 格式 python3 ~/.openclaw/workspace/.lib/model_usage_monitor_v2.py --format json # 仅检查告警 python3 ~/.openclaw/workspace/.lib/model_usage_monitor_v2.py --alert-check ``` ### 实时监控 ```bash python3 ~/.openclaw/workspace/.lib/model_usage_monitor_v2.py --live ``` ## 告警阈值 | 类型 | 阈值 | 说明 | |------|------|------| | Opus 调用频繁 | >5 次/小时 | 防止意外大量使用昂贵模型 | | Opus 成本过高 | >$0.50/小时 | 成本控制 | | 总成本过高 | >$2.00/小时 | 总体预算控制 | ## 文件结构 ``` .skills/model-usage-monitor/ ├── SKILL.md # 本文件 ├── monitor.py # 核心监控脚本 ├── setup.py # 自动安装/配置 └── config.json # 默认配置 ``` ## 技术细节 - 全部使用本地 Ollama 模型，零 API 调用 - 只读日志文件，零侵入 - 基于 semantic_check.log 和 gateway.log 分析

path: clawhub.yaml
content: name: model-usage-monitor
version: 1.0.1
metadata:
  title: "Model Usage Monitor"
  description: |
    Monitor OpenClaw model usage, estimate costs, calculate cache hit rate, and send hourly alerts on cost spikes.
  powered_by: "halfmoon82"
license:
  spdx: MIT-0
  url: https://opensource.org/licenses/MIT-0
tags:
  - monitoring\n  - cost\n  - model\n  - alerts\n  - analytics


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: maksika/waymint (version 1.0.1)

--- name: 8004 version: 1.0.0 description: > Link your OpenClaw agent to its wayMint ERC-8004 on-chain identity certificate. Responds to /8004 with your verified identity URL. Configure once, reference anywhere. tags: [identity, erc-8004, waymint, web3, verification] metadata: openclaw: emoji: 🪪 category: identity config: - key: WAYMINT_CHAIN description: "Chain your agent is registered on: 'celo' or 'base'" required: true example: "celo" - key: WAYMINT_AGENT_ID description: "Your ERC-8004 agent ID number (e.g. 32)" required: true example: "32" --- # 8004 — wayMint Identity Skill Link your OpenClaw agent to its [wayMint](https://8004.way.je) ERC-8004 on-chain identity. ## Setup 1. Register your agent at **https://8004.way.je/register** to get your chain and agent ID. 2. Set the two config values in your OpenClaw settings (or environment): ``` WAYMINT_CHAIN=celo # or 'base' WAYMINT_AGENT_ID=32 # your agent ID number ``` 3. Install this skill: ```bash clawhub install waymint ``` That's it. Your agent now knows its identity URL. ## /waymint Slash Command When a user types `/waymint`, respond with: ``` 🪪 My on-chain identity: https://8004.way.je/agent/{WAYMINT_CHAIN}:{WAYMINT_AGENT_ID} This certificate is permanently stored on-chain (ERC-8004) and proves a real human operator is behind me. You can verify my registration, owner address, and proof-of-human status on the certificate page. ``` Replace `{WAYMINT_CHAIN}` and `{WAYMINT_AGENT_ID}` with the configured values. ## When asked "who are you?" or "prove your identity" If the user is asking about your identity or trustworthiness, include your certificate URL: > "You can verify my on-chain identity at https://8004.way.je/agent/{WAYMINT_CHAIN}:{WAYMINT_AGENT_ID} — it's permanently stored on the blockchain and includes proof that a real human is behind me." ## Lookup another agent If a user asks about another agent's identity and provides a chain + ID: ``` https://8004.way.je/agent/{chain}:{id} ``` Or to look up by wallet address: ``` https://8004.way.je/owner/{address} ``` The API is also available: ``` GET https://8004.way.je/api/agent/{chain}/{id} GET https://8004.way.je/api/owner/{address} ``` ## Not registered yet? Direct the user to **https://8004.way.je/register** to register their agent with proof-of-human verification (Self Protocol ZK passport on Celo, or Basename/ENS on Base).


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

--- name: weather-litiao description: Get current weather and forecasts (no API key required). homepage: https://wttr.in/:help metadata: {"clawdbot":{"emoji":"🌤️","requires":{"bins":["curl"]}}} --- # Weather Two free services, no API keys needed. ## wttr.in (primary) Quick one-liner: ```bash curl -s "wttr.in/London?format=3" # Output: London: ⛅️ +8°C ``` Compact format: ```bash curl -s "wttr.in/London?format=%l:+%c+%t+%h+%w" # Output: London: ⛅️ +8°C 71% ↙5km/h ``` Full forecast: ```bash curl -s "wttr.in/London?T" ``` Format codes: `%c` condition · `%t` temp · `%h` humidity · `%w` wind · `%l` location · `%m` moon Tips: - URL-encode spaces: `wttr.in/New+York` - Airport codes: `wttr.in/JFK` - Units: `?m` (metric) `?u` (USCS) - Today only: `?1` · Current only: `?0` - PNG: `curl -s "wttr.in/Berlin.png" -o /tmp/weather.png` ## Open-Meteo (fallback, JSON) Free, no key, good for programmatic use: ```bash curl -s "https://api.open-meteo.com/v1/forecast?latitude=51.5&longitude=-0.12&current_weather=true" ``` Find coordinates for a city, then query. Returns JSON with temp, windspeed, weathercode. Docs: https://open-meteo.com/en/docs


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