OpenClaw/clawhub-security-signals huggingface dataset:
Skill: brennerspear/caddy-reverse-proxy (version 1.0.0)

--- name: caddy description: Add, manage, and troubleshoot Caddy reverse proxy routes for local apps via wildcard subdomains. compatibility: macOS (LaunchDaemon) or Linux (systemd). Requires Caddy, Tailscale, Vercel DNS account. --- # Caddy — Wildcard Reverse Proxy for Local Apps Routes `*.YOUR_DOMAIN` subdomains to local services over HTTPS via Caddy reverse proxy with automatic Let's Encrypt certificates. Designed for Tailscale-only access (no public exposure). > **DNS provider:** This skill uses **Vercel DNS** for DNS-01 ACME challenges. If you use a different DNS provider, swap the `caddy-dns/vercel` plugin and TLS snippet for your provider's equivalent (see [caddy-dns](https://github.com/caddy-dns)). ## Add a New App 1. **Create a background service** (LaunchAgent on macOS, systemd on Linux) — see `reference.md` for templates 2. **Add to Caddyfile** (`~/.config/caddy/Caddyfile`): ```caddy appname.YOUR_DOMAIN { import vercel_tls reverse_proxy localhost:31XX } ``` Also add a `<li>` entry in the dashboard HTML block at the top. 3. **Reload Caddy:** ```bash ~/.local/bin/caddy reload --config ~/.config/caddy/Caddyfile --address localhost:2019 ``` TLS cert provisioning takes 30–60 seconds (DNS-01 challenge). 4. **If it connects to OpenClaw Gateway** — see `OPENCLAW.md` in this folder for gateway-specific config. ## Quick Dev Servers Companion skill: [dev-serve](https://clawhub.com/skills/dev-serve) — one-command dev server + Caddy routing. ```bash dev-serve up ~/projects/myapp # → https://myapp.YOUR_DOMAIN dev-serve down myapp dev-serve ls ``` ## Reload / Restart ```bash # Reload config (no restart, no sudo) ~/.local/bin/caddy reload --config ~/.config/caddy/Caddyfile --address localhost:2019 # Full restart # macOS: sudo launchctl unload /Library/LaunchDaemons/com.caddyserver.caddy.plist sudo launchctl load /Library/LaunchDaemons/com.caddyserver.caddy.plist # Linux: systemctl --user restart caddy ``` ## Troubleshoot - **Cert not issuing:** `tail -50 /var/log/caddy-error.log | grep -i error` — likely expired Vercel API token - **DNS not resolving:** `dig +short appname.YOUR_DOMAIN` — should return your Tailscale IP - **TLS error (curl exit 35):** Cert hasn't provisioned yet, wait 30-60s For full reference (example apps, key files, build instructions): see `reference.md`. For OpenClaw gateway integration: see `OPENCLAW.md`.


Security scan verdicts — ClawScan: suspicious | static analysis:  | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: richliao1112/qweather-city-weather (version 1.0.1)

--- name: qweather-city-weather description: Query QWeather city codes and real-time weather with bundled executable scripts. Use when users need to resolve city names to QWeather location IDs/adcodes, fetch current weather, or run portable weather queries on machines that do not host the original app. --- # qweather-city-weather Use this skill primarily via the bundled script: - `scripts/qweather_query.py` This makes the skill portable across machines and independent from a local Next.js service. ## Prerequisites - Python 3.10+ available - Required QWeather API key: - set `QWEATHER_API_KEY`, or - pass `--api-key` - Required QWeather API host: - set `QWEATHER_API_HOST`, or - pass `--api-host` ## Default execution flow 1. Search city candidates and get location IDs: ```bash python3 scripts/qweather_query.py search-city --query "Hangzhou" --api-host "<QWEATHER_API_HOST>" --api-key "<QWEATHER_API_KEY>" ``` 2. Pick best city by `id/name/adm1/adm2`. 3. Query current weather with location ID: ```bash python3 scripts/qweather_query.py get-weather --location "101210101" --api-host "<QWEATHER_API_HOST>" --api-key "<QWEATHER_API_KEY>" ``` 4. Or run one-shot city -> weather: ```bash python3 scripts/qweather_query.py city-weather --query "Hangzhou" --api-host "<QWEATHER_API_HOST>" --api-key "<QWEATHER_API_KEY>" ``` ## Script command reference - `search-city` - required: `--query` - optional: `--number` (default `10`) - `get-weather` - required: `--location` - `city-weather` - required: `--query` - optional: `--preferred-name` for exact city-name match Global options for all subcommands: - `--api-key` - `--api-host` - `--timeout` (seconds, default `5.0`) ## Output and error contract - Success: JSON with `success: true` - Failure: JSON with `success: false` + `error`, process exits non-zero - Never guess city when no result; return explicit no-match failure ## Direct API reference For endpoint and payload details of the official QWeather API, read: - `references/qweather-http-contract.md`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: teoslayer/pilot-clipboard (version 1.0.0)

--- name: pilot-clipboard description: > Shared clipboard for quick text and data snippets between agents over Pilot Protocol. Use this skill when: 1. You need to share short text snippets or command output between agents 2. You want a quick copy/paste mechanism across the Pilot network 3. You need to exchange small data payloads without file transfer Do NOT use this skill when: - You need to transfer files (use pilot-share instead) - You need to share large datasets (use pilot-dataset instead) - You need persistent storage (use pilot-backup instead) tags: - pilot-protocol - clipboard - text-sharing - quick-exchange license: AGPL-3.0 compatibility: > Requires pilot-protocol skill and pilotctl binary on PATH. The daemon must be running (pilotctl daemon start). metadata: author: vulture-labs version: "1.0" openclaw: requires: bins: - pilotctl homepage: https://pilotprotocol.network allowed-tools: - Bash --- # pilot-clipboard Shared clipboard for exchanging text snippets and command output between agents. ## Commands ### Copy to Remote Clipboard ```bash echo "Hello from Pilot!" | pilotctl --json send "1:0001.AAAA.BBBB" 1001 --data "$(cat)" ``` ### Send Message ```bash pilotctl --json send-message "1:0001.AAAA.BBBB" --data "Hello from Pilot!" ``` ### Paste from Remote ```bash pilotctl --json inbox | jq -r '.messages[0].content' ``` ### Share Command Output ```bash OUTPUT=$(ls -lh) pilotctl --json send "1:0001.AAAA.BBBB" 1001 --data "$OUTPUT" ``` ## Workflow Example ```bash #!/bin/bash # Clipboard manager CLIPBOARD_PORT=1001 clip_copy() { local dest="$1" local content="${2:-$(cat)}" local sender=$(pilotctl --json info | jq -r '.hostname') local clip_msg=$(cat <<EOF {"type":"clipboard","content":$(echo "$content" | jq -R -s .),"sender":"$sender"} EOF ) pilotctl --json send-message "$dest" --data "$clip_msg" } clip_paste() { pilotctl --json inbox | jq -r '.messages[] | select(.type == "clipboard") | .content' | head -1 } case "${1:-help}" in copy) shift; clip_copy "$@" ;; paste) clip_paste ;; *) echo "Usage: pilot-clipboard {copy DEST [CONTENT]|paste}" ;; esac ``` ## Dependencies Requires pilot-protocol, pilotctl, and jq. Clipboard tools: pbcopy/pbpaste (macOS) or xclip/xsel (Linux).


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yusaku-0426/health-tracking (version 1.0.0)

--- name: health-tracking description: Record health data (meals, weight, water, workout, sleep) to CSV files. Analyze food photos for nutrition. metadata: { "openclaw": { "emoji": "🏥", "requires": { "scripts": ["scripts/health_record.js", "scripts/nutrition_append.js"] }, }, } --- # health-tracking Record health data to CSV files and analyze food photos for nutritional content. ## Scripts ### health_record.js — 健康データ記録 ```bash # 朝の記録（体重・睡眠・気分・安静時心拍） node scripts/health_record.js morning --weight=70 --sleep=7 --mood=4 --hr=60 # 夜の記録（体重・気分） node scripts/health_record.js night --weight=69.5 --mood=3 # 水分記録 node scripts/health_record.js water --amount=500 --source=water # 運動記録 node scripts/health_record.js workout --activity=running --duration=30 --intensity=3 --cal=300 # テキストベースの食事記録 node scripts/health_record.js meal --type=lunch --desc="鶏胸肉サラダ" --cal=450 --p=35 --c=20 --f=15 # 日報 node scripts/health_record.js report --text="今日は集中できた" ``` ### nutrition_append.js — 栄養データ追記（写真分析後） 食事画像を分析した後、推定値を記録する: ```bash node scripts/nutrition_append.js \ --desc="鶏胸肉サラダ" \ --cal=450 --p=35 --c=20 --f=15 \ --fiber=5 --sugar=3 --sodium=800 --satfat=2 \ --photo_ref=file_id \ --notes="confidence=0.85" ``` ## 食事画像分析ワークフロー ユーザーが食事画像を送信した場合: 1. 画像をビジョン機能で分析 2. 以下のJSON形式で推定: - summary: 日本語で料理名と内容を2-3文で説明 - estimated_kcal, estimated_protein_g, estimated_carbs_g, estimated_fat_g - estimated_fiber_g, estimated_sugar_g, estimated_sodium_mg, estimated_saturated_fat_g - confidence: 0-1（明確な画像は0.8以上、不鮮明なら0.5以下） 3. `nutrition_append.js` で記録 4. ユーザーに分析結果を返信 ## CSV スキーマ - `data/daily.csv`: ts,date,weight_kg,sleep_hours,resting_hr,mood_1to5,notes - `data/hydration.csv`: ts,date,time,amount_ml,source,notes - `data/workout.csv`: ts,date,time,activity,duration_min,intensity_1to5,calories_estimate,notes - `data/nutrition_meals.csv`: ts,date,time,meal_type,description,photo_ref,cal,p,c,f,water,notes ## デイリースレッド管理 `#health` チャネルで日付ごとのスレッドを作成し、その日の食事記録をスレッド内にまとめる。 スレッドの親メッセージ例: `:plate_with_cutlery: 2026-02-24 の食事記録` ## 体調フィードバック 食事分析の返信後、ユーザーは以下の形式で体調を記録できる: `体調 睡眠:7h 疲労:2 水分:1500ml 運動:中 メモ:集中OK`


Security scan verdicts — ClawScan: suspicious | static analysis:  | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jrbconsulting-joel/jrb-remote-site-api-skill-repo (version 1.0.0)

# JRB Remote Site API Skill Interface with WordPress sites running the `jrb-remote-site-api` plugin. This skill enables AI agents to perform administrative tasks, content management, and integration with the Fluent suite (CRM, Forms, Support, etc.) via a secure REST API. ## Configuration Required environment variables for targeting a site: - `JRB_API_URL`: The base URL of the site (e.g., `https://jrbconsulting.au`) - `JRB_API_TOKEN`: The secure API token configured in the plugin settings ## Core Capabilities ### 1. System & Auth - **Ping**: Verify connection and token validity. - **Site Info**: Get WordPress version, active theme, plugin version, and capabilities. ### 2. Content Management (CRUD) - **Posts & Pages**: Create, read, update, delete, and list. Supports custom statuses (draft, publish, private). - **Media**: Upload and manage files in the WordPress Media Library. ### 3. Plugin & Theme Management - **Plugins**: List, install, activate, deactivate, update, and delete. - **Themes**: List active/available themes, switch themes, install from URL. ### 4. Fluent Suite Integration (Modules) - **FluentCRM**: Manage contacts, lists, tags, and campaigns. - **FluentSupport**: Professional ticket management and customer support. - **FluentProject**: Task and project management automation. - **FluentBoards**: Advanced board and task management. ## Usage Patterns ### Verification ```bash curl -H "X-JRB-[REDACTED_SECRET]" "\$JRB_API_URL/wp-json/jrb-remote/v1/site" ``` ### Create a Page ```bash curl -X POST -H "X-JRB-[REDACTED_SECRET]" \\ -H "Content-Type: application/json" \\ -d '{"title": "New Page", "content": "Hello World", "status": "publish"}' \\ "\$JRB_API_URL/wp-json/jrb-remote/v1/pages" ``` ## Installation This skill is designed to work with the **JRB Remote Site API** WordPress plugin. To install: `clawhub install jrb-remote-site-api`

path: package.json
content: {
  "name": "jrb-remote-site-api",
  "version": "1.0.0",
  "description": "OpenClaw Agent Skill for interacting with the JRB Remote Site API (v6.4.0+).",
  "main": "SKILL.md",
  "author": "JRB Consulting",
  "license": "GPL-2.0-or-later",
  "repository": {
    "type": "git",
    "url": "https://github.com/JRBConsulting/jrb-remote-site-api-skill.git"
  }
}


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: lovefromio/lovefromio-telegram (version 1.0.0)

--- name: telegram description: OpenClaw skill for designing Telegram Bot API workflows and command-driven conversations using direct HTTPS requests (no SDKs). --- # Telegram Bot Skill (Advanced) ## Purpose Provide a clean, production-oriented guide for building Telegram bot workflows via the Bot API, focusing on command UX, update handling, and safe operations using plain HTTPS. ## Best fit - You want a command-first bot that behaves professionally. - You need a reliable update flow (webhook or polling). - You prefer direct HTTP calls instead of libraries. ## Not a fit - You require a full SDK or framework integration. - You need complex media uploads and streaming in-process. ## Quick orientation - Read `references/telegram-bot-api.md` for endpoints, update types, and request patterns. - Read `references/telegram-commands-playbook.md` for command UX and messaging style. - Read `references/telegram-update-routing.md` for update normalization and routing rules. - Read `references/telegram-request-templates.md` for HTTP payload templates. - Keep this SKILL.md short and use references for details. ## Required inputs - Bot token and base API URL. - Update strategy: webhook or long polling. - Command list and conversation tone. - Allowed update types and rate-limit posture. ## Expected output - A clear command design, update flow plan, and operational checklist. ## Operational notes - Prefer strict command routing: `/start`, `/help`, `/settings`, `/status`. - Always validate incoming update payloads and chat context. - Handle 429s with backoff and avoid message bursts. ## Security notes - Never log tokens. - Use webhooks with a secret token header when possible.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: nz365guy/github-backup (version 1.0.0)

--- name: github-backup description: Automate OpenClaw workspace backups and skill version control to the private GitHub repo `nz365guy/openclaw-backup`. Use this when staging/committing workspace changes, rotating the PAT, or running the backup script to push updates. --- # GitHub Backup & Version Control ## Overview Centralizes the `/home/node/.openclaw/workspace` inside the private repo `nz365guy/openclaw-backup` so every configuration file, memory note, and custom skill stays versioned. Includes a scripted backup workflow, token-handling guidance, and commit conventions for both routine snapshots and skill-specific changes. ## Quick Start Checklist 1. **Auth loaded** – `source .env.local` to expose `GITHUB_TOKEN` (repo+workflow scopes). Never commit `.env.local`. 2. **Remote sanity** – `git remote -v` should show `origin https://github.com/nz365guy/openclaw-backup.git`. If missing, run `git remote add origin ...`. 3. **Clean status review** – `git status -sb` before any backup; eyeball diffs for secrets. 4. **Reference doc** – See [`references/repo-setup.md`](references/repo-setup.md) for repo details, token rotation steps, and safety rules. ## Routine Backup Workflow 1. **Inspect changes** ```bash cd /home/node/.openclaw/workspace git status -sb git diff ``` 2. **Run the helper script** (preferred for automation): ```bash skills/github-backup/scripts/backup_openclaw.sh "Backup: <short summary>" ``` - Auto-sources `.env.local`, stages everything (respecting `.gitignore`), commits, and pushes via token-auth URL. - Exits early if there are no modifications. 3. **Manual fallback** (if you need bespoke staging): ```bash git add <files> git commit -m "<message>" source .env.local git push [REDACTED_SECRET] main ``` 4. **Verify on GitHub** – `gh repo view` or open the repo URL to confirm the new commit landed. ## Skill & Repo Hygiene - **Commit messages** – Prefix with `Skill:` when touching `/skills/**`, `Config:` for workspace settings, `Memory:` for journal updates. The backup script accepts any custom message, so pass a descriptive summary when a change is more than a routine snapshot. - **New skills** – After creating/updating a skill folder, re-run the backup workflow so the packaged assets live in GitHub alongside the rest of the workspace. - **Token rotation** – Update `.env.local`, re-source the shell, and test with the curl snippet in [`references/repo-setup.md`](references/repo-setup.md#connection-test) before attempting the next push. - **Sensitive files** – Keep `.env.local` and any raw secrets out of git. Expand `.gitignore` here if new secret files are introduced. ## Resources - [`scripts/backup_openclaw.sh`](scripts/backup_openclaw.sh): one-command backup helper (stage → commit → push) that reads the PAT from `.env.local` and targets `main`. - [`references/repo-setup.md`](references/repo-setup.md): authoritative repo/token metadata, safety guardrails, and verification commands.


Security scan verdicts — ClawScan: suspicious | static analysis:  | VirusTotal: malicious | SkillSpector: suspicious (CRITICAL)
Skill: baolige2023/ecommerce-data-analyzer (version 2.7.0)

--- name: ecommerce-data-analyzer description: 电商数据分析工具，支持CSV销售数据上传、生成销售趋势图/产品排名/渠道收入占比/利润率分析/库存预警，一键生成PDF报告，集成SkillPay支付接口。适用于电商卖家分析销售业绩、生成业务报告。 license: MIT --- # 电商数据分析工具 ## 功能概述 1. 上传CSV格式的销售数据文件 2. 自动生成以下分析图表和报表： - 日销/周销/月销趋势折线图 - 各产品销售数量/金额排名 - 各销售渠道（Amazon/Shopify/独立站）收入占比饼图 - 利润率分析（需手动填入成本数据） - 库存预警：基于销售速度预测断货时间 3. 一键导出完整分析报告为PDF文件 4. 全中文界面支持 ## 支付说明 每次调用本工具将收取0.001 USDT，支付接口由SkillPay.me提供，API Key：[REDACTED_SECRET] ## 使用流程 1. 上传销售数据CSV文件，CSV需包含以下字段： - 订单日期 - 产品名称 - 销售数量 - 销售金额 - 销售渠道 - 库存数量 2. 填写成本数据（用于利润率分析） 3. 系统自动生成分析图表和报告 4. 下载PDF报告 ## 依赖要求 - Python 3.8+ - pandas: 数据处理 - matplotlib: 图表生成 - reportlab: PDF生成 - flask: 网页界面（可选） ## 部署说明 1. 克隆或下载本技能目录 2. 安装依赖：`pip install pandas matplotlib reportlab flask` 3. 运行启动脚本：`python scripts/app.py` 4. 访问本地地址即可使用工具


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: minybear/feishu-tts-pro (version 1.0.0)

--- name: feishu-tts-pro description: 将文字转换为语音并以飞书语音气泡消息发送。使用 Edge-TTS（微软，免费，无限次）生成中文语音，FFmpeg 转码为 ogg/opus，上传到飞书作为 audio 类型消息。支持自定义音色、接收者和 Python 环境。当用户要求用语音回复、发语音消息、TTS 朗读内容时触发。 metadata: openclaw: emoji: "🎤" requires: bins: ["ffmpeg"] env: - FEISHU_APP_ID - FEISHU_APP_SECRET - FEISHU_DEFAULT_USER - EDGE_TTS_VOICE - PYTHON_BIN --- # feishu-tts-pro 将中文文字转换为语音，直接发送为飞书语音气泡消息。 ## 使用方法 ```bash # 发送语音消息（默认发送给 FEISHU_DEFAULT_USER） tts-send "你好，这是番茄的语音回复" # 发送给指定用户 tts-send "你好" ou_xxxxx ``` ## 环境变量（必填） | 变量 | 说明 | |------|------| | `FEISHU_APP_ID` | 飞书应用 App ID | | `FEISHU_APP_SECRET` | 飞书应用 App Secret | | `FEISHU_DEFAULT_USER` | 默认接收者的 open_id（可选，未提供时需要命令行参数） | ## 环境变量（可选） | 变量 | 默认值 | 说明 | |------|--------|------| | `EDGE_TTS_VOICE` | `zh-CN-YunxiNeural` | Edge-TTS 音色 | | `PYTHON_BIN` | 系统 Python | Python 路径（用于 edge-tts） | ## 可选音色 | 音色 | 说明 | |------|------| | `zh-CN-YunxiNeural` | 云希（男声，活泼阳光，默认） | | `zh-CN-XiaoxiaoNeural` | 晓晓（女声，温和） | | `zh-CN-YunyangNeural` | 云扬（男声，专业） | | `zh-CN-XiaoyiNeural` | 晓逸（女声，甜美） | | `zh-CN-tianxiangNeural` | 天祥（男声，大气） | ## 技术流程 1. Edge-TTS 生成 MP3（使用指定音色） 2. FFmpeg 转码为 ogg/opus（16kHz, mono, 飞书兼容） 3. 上传到飞书（file_type=opus，duration 嵌入） 4. 发送 audio 消息气泡 ## 依赖 - **Node.js** 18+ - **Python** 3.8+ + edge-tts（`pip install edge-tts`） - **FFmpeg**（系统安装） ## 安装 edge-tts ```bash pip install edge-tts ``` 或使用 uv： ```bash uv pip install edge-tts --python /path/to/your/python ``` ## 配置示例 在 `AGENTS.md` 或 `openclaw.json` 中配置： ```json { "skills": { "entries": { "feishu-tts-pro": { "env": { "FEISHU_APP_ID": "cli_xxxxxxxxxxxx", "FEISHU_APP_SECRET": "xxxxxxxxxxxxxxxx", "FEISHU_DEFAULT_USER": "ou_xxxxxxxxxxxx", "EDGE_TTS_VOICE": "zh-CN-YunxiNeural" } } } } } ``` ## 故障排除 **TTS 生成失败** - 确认 edge-tts 已安装：`python -c "import edge_tts"` - 确认 Python 路径正确 **语音气泡无时长显示** - 上传时需要传入 duration 参数（毫秒） - 脚本已自动处理 **发送失败 (code=99991663)** - 检查 App ID/Secret 是否正确 - 确认飞书应用已开通「发消息」权限 --- *Powered by 番茄 (OpenClaw Agent)*


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: libaoming/china-weather (version 1.0.1)

--- name: china-weather description: "获取中国城市天气信息，支持当前天气、未来预报、生活指数。当用户问中国城市的天气、温度、下雨、穿衣建议时使用。支持城市名或城市代码查询。Use when user asks about weather in Chinese cities like '北京天气'、'上海明天会下雨吗'、'广州这周天气怎么样'。" --- # 中国天气 获取中国城市的实时天气和预报信息。 ## 快速使用 ```bash # 当前天气 ~/.openclaw/workspace/skills/china-weather/scripts/weather.sh 上海 # 明天天气 ~/.openclaw/workspace/skills/china-weather/scripts/weather.sh 北京 tomorrow # 一周预报 ~/.openclaw/workspace/skills/china-weather/scripts/weather.sh 广州 week # 生活指数（穿衣、出行建议） ~/.openclaw/workspace/skills/china-weather/scripts/weather.sh 深圳 indices ``` ## 支持的城市 - 直辖市：北京、上海、天津、重庆 - 省会城市：广州、杭州、成都、武汉、西安等 - 其他城市：支持大部分中国城市（使用城市名或区县名） ## 命令参数 | 参数 | 说明 | 示例 | |------|------|------| | `城市名` | 查询当前天气 | `weather.sh 上海` | | `tomorrow` | 明天天气 | `weather.sh 北京 tomorrow` | | `week` | 一周预报 | `weather.sh 广州 week` | | `indices` | 生活指数 | `weather.sh 深圳 indices` | | `alert` | 气象预警 | `weather.sh 成都 alert` | ## 生活指数说明 - 🧥 **穿衣指数** - 穿衣建议 - ☂️ **雨伞指数** - 是否需要带伞 - 🚗 **洗车指数** - 是否适合洗车 - 🏃 **运动指数** - 是否适合户外运动 - 🌞 **紫外线指数** - 防晒建议 - 😷 **空气污染扩散指数** - 空气质量 ## 数据来源 - 默认使用 wttr.in（免费，无需 API key） - 如需更精准数据，可配置和风天气 API key ## 配置 API key（可选） 如需使用和风天气 API 获取更精准数据： 1. 注册和风天气开发者账号：https://dev.qweather.com 2. 获取免费 API key 3. 配置环境变量： ```bash export QWEATHER_KEY="your-api-key" ``` ## 示例输出 **当前天气：** ``` 上海 🌤️ 18°C 体感 16°C | 湿度 65% | 东北风 3级 空气质量：良 (AQI 58) ``` **一周预报：** ``` 上海 未来7天天气： 周一 🌤️ 12-18°C 周二 ☀️ 14-20°C 周三 🌧️ 10-15°C (有雨) ... ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: wingchiu/minimax-speech (version 1.0.0)

--- name: minimax-tts description: Manage MiniMax Speech 2.8 T2A (text-to-audio) and voice catalog lookups. Trigger when you need a precise MiniMax voice_id, a Speech 2.8 TTS request, or to list the available MiniMax system/cloned/generated voices. --- # MiniMax Speech 2.8 helper 1. **Install dependencies.** Run `pip install requests` in the environment that will execute the script. The CLI talks to MiniMax's REST API, so you only need the `requests` library on top of Python 3.11+. 2. **Set your MiniMax credential.** Export `MINIMAX_API_KEY` with the API key the user promised to supply. The script will refuse to run without it. 3. **Use the bundled CLI.** `scripts/minimax_tts.py` exposes two subcommands: - `tts`: calls `POST https://api.minimax.io/v1/t2a_v2` (Speech 2.8 T2A HTTP) with the desired voice_id, voice settings, audio configuration, and optional voice effects. Example: ```bash python scripts/minimax_tts.py tts \ --text "Tonight in Shenzhen the skies are clear." \ --voice-id "Sweet_Girl_2" \ --model speech-2.8-hd \ --audio-format mp3 \ --output minimax-weather.mp3 ``` The script decodes the hex/base64 payload, saves the file, and prints metadata. Override the endpoint with `--endpoint` if you must hit `https://api-uw.minimax.io/v1/t2a_v2` or another region. - `voices`: calls `POST https://api.minimax.io/v1/get_voice` to enumerate `system`, `voice_cloning`, `voice_generation`, or `all` categories. Example: ```bash python scripts/minimax_tts.py voices --voice-type all --print-response ``` 4. **Customize TTS payloads via CLI switches.** Use `--speed`, `--vol`, `--pitch`, and `--language-boost` to shape the voice. Control audio fidelity with `--sample-rate`, `--bitrate`, `--audio-format`, and `--channel`. Add pronunciation overrides (`--pronunciation "emoji=ee-moh-jee"`) or mix timbres (`--timbre-weight "Sweet_Girl_2=0.8"`). `--voice-modify-*` flags let you nudge pitch/intensity/timbre or append a sound effect such as `"spacious_echo"`. `--output-format` tells the script how the API returns audio (`hex`, `base64`, or a download `url`). 5. **Handle the JSON.** By default the script prints the `extra_info` field so you can read bitrate/sample rate/length. Use `--print-response` on either subcommand to dump the entire API payload for debugging. Save catalog JSON to disk with `--output <path>` when you need to reference voices later. Keep this skill loaded any time you are asked for MiniMax-specific voices or when precise speech settings are required. The CLI gives you deterministic control over voice_id, model, and audio quality so you always get the `Sweet_Girl_2` (or any other) tone you expect. If you need to script these requests from another tool, copy the relevant `requests.post` logic from `scripts/minimax_tts.py`.


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