OpenClaw/clawhub-security-signals huggingface dataset:
Skill: if530770/xhs-cover-generator (version 1.0.1)

--- name: explosive-cover-generator description: > 专为小红书内容创作打造的AI封面设计工具，基于全网每日持续收录的2000+条爆款笔记数据，深度抓取同赛道爆款封面的视觉元素，通过AI智能分析总结高转化视觉规律，生成贴合笔记内容、符合平台流量审美的可落地封面设计方案，省去繁琐设计流程，提升笔记封面点击率。 dependency: python: - requests>=2.28.0 --- # 小红书爆款封面生成大师 需要执行**完整流程**时：**必须先读取**与本技能同目录下的 `references/core_workflow.md`，并**完整遵循**其中的触发规则、术语规范、数据来源约束、操作步骤、自检清单与注意事项。生成 **HTML 报告**时另需按该文档要求读取 `references/xhs_trend_data_format.md`。脚本路径（相对技能目录）：`scripts/fetch_explosive_covers.py`。 ## 简介 面向小红书创作者的**爆款封面**设计辅助：依托每日持续收录的爆款笔记数据（如 2000+ 条量级，以实际脚本与数据源为准），用同赛道高互动样本与视觉规律提炼，减少凭感觉试错，把「能点的封面」落到可执行的结构与提示词级方案。 通过本 Skill，你可以： - **🎯 对标有据**：结合收录的爆款笔记与封面相关数据，缩小同赛道视觉参考范围 - **📐 规律结构化**：把版式、元素、调性等拆成可复用的设计要点 - **✅ 可交付**：输出贴合笔记主题与风格偏好的落地方案（细节与命令以 `core_workflow.md` 为准） 适用于个人博主、品牌/代运营、MCN 内容组等需要稳定提升封面点击率与一致性的角色。环境需可运行 Python 及 `requests>=2.28.0`（与 workflow 中脚本说明一致）。 ## 功能特性 ### 核心功能 - **🔍 意图与关键词结构化**：从用户主题、类型、风格中提炼搜索与方案所需字段（执行细则见 workflow） - **📊 同赛道样本获取**：通过 `scripts/fetch_explosive_covers.py` 按关键词等参数查询数据（时间窗与命令见 workflow） - **🧩 方案生成**：结合用户需求与数据侧特征，输出可落地的封面设计思路与配套说明（含报告场景时的格式约束） ### 特色亮点 - **📚 流程外置**：复杂步骤、术语禁忌、失败处理一律以 `references/core_workflow.md` 为单一事实来源，避免 Skill 正文与执行脱节 - **🤖 主 Agent 专属**：保证上下文与工具链完整，不拆给子 Agent ## 使用指南 ### 基础路径 #### 第 1 步：确认是否进入「执行流程」 用户需给出**明确的创作主题/赛道**、**明确的封面设计或分析诉求**，或提供**可分析的文案/图片**。若仅问「能做什么」「怎么用」，只介绍能力，不跑数据、不编造案例（与 workflow 触发规则一致）。 > 用户：帮我做一篇职场穿搭笔记的封面，要专业一点、适合点击 > 助手：先按 workflow 做意图解析与关键词；再执行数据查询与方案输出；术语统一为「爆款封面」等规范表述。 若用户只说「做个封面」：**追问主题、赛道、风格或参考方向**，勿自行假定品类。 #### 第 2 步：执行完整流程前必读 打开并遵循 `references/core_workflow.md`（含脚本命令、数据范围、自检清单）。HTML 报告需同时满足 `references/xhs_trend_data_format.md`。 #### 第 3 步：数据与输出 按 workflow 调用 `scripts/fetch_explosive_covers.py`；不可用时**说明原因**，**不得虚构**互动数据或封面来源。 ### 常用命令速查 | 命令示例 | 功能 | | ---------------------------------------------------------------- | ------------------------------------------------------------------- | | `python scripts/fetch_explosive_covers.py --keyword <k1,k2,...>` | 按关键词查询爆款封面相关数据（完整参数与示例见 `core_workflow.md`） | **失败或无法执行时**：说明是缺参数、数据不可用、环境限制或触发条件未满足；禁止编造数据与截图链接。 ## 使用场景 | 场景 | 角色 | 需求描述 | 使用方式 | | ---------- | ----------- | ---------------------------------- | ----------------------------------------------------------------------- | | 新号起量 | 个人博主 | 不确定封面怎么做出点击 | 给主题与风格；走 workflow 拉同赛道参考；输出版式与元素建议 | | 品宣种草 | 品牌运营 | 多笔记要保持系列感又要像「能爆的」 | 定赛道与调性；批量主题下复用规律结构；按规范出方案与报告（若需要 HTML） | | 代运营交付 | 代运营/策划 | 客户要「有依据」的封面说明 | 保留 workflow 中的数据与术语约束；输出可复述给客户的结构化方案 | | 内容复盘 | MCN/主编 | 把「为什么像爆款」讲清楚 | 用关键词拉样本；对照 workflow 中的分析维度做归纳，避免空泛形容词 | ## 注意事项 - **数据**：来源与时间范围以 `core_workflow.md` 为准；接口或脚本失败时如实告知，不填充假数据。 - **合规与表述**：遵守平台与社区规范；对外统一使用 workflow 规定的术语（如「爆款封面」），禁用已列出的替代表述。 - **边界**：未满足触发条件时不执行拉数与方案生成；子 Agent 不承接本技能完整流程。


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: bbdyno/email-summary (version 1.0.0)

--- name: email-summary description: Fetches recent emails from Gmail and provides concise summaries. Use when the user wants to check emails, get email summaries, or review their inbox. homepage: https://github.com/yourusername/email-summary-skill user-invocable: true metadata: openclaw: requires: bins: - python3 env: - GMAIL_CREDENTIALS_PATH os: - darwin - linux - win32 --- # Email Summary Skill This skill fetches recent emails from your Gmail account and provides AI-powered summaries. ## How it works When invoked, this skill will: 1. **Authenticate with Gmail API** using credentials at `$GMAIL_CREDENTIALS_PATH` 2. **Fetch recent emails** (default: last 10 unread emails) 3. **Summarize each email** with: - Sender and subject - Key points from the email body - Recommended actions or responses 4. **Present results** in an organized, easy-to-scan format ## Instructions for the Agent When this skill is invoked: 1. First, verify that the Gmail API credentials exist at the path specified in `$GMAIL_CREDENTIALS_PATH` environment variable 2. Run the helper script located at `{baseDir}/scripts/fetch_emails.py` with the appropriate arguments: - Default: `python3 {baseDir}/scripts/fetch_emails.py --count 10` - With arguments: `python3 {baseDir}/scripts/fetch_emails.py $ARGUMENTS` 3. Parse the JSON output from the script 4. For each email, provide a concise summary including: - **From**: Sender name and email - **Subject**: Email subject line - **Summary**: 2-3 sentence summary of key points - **Action**: Suggested action (reply, archive, flag for follow-up, etc.) 5. Present all summaries in a well-formatted list ## Usage Examples ``` /email-summary ``` Fetches and summarizes the last 10 unread emails. ``` /email-summary --count 20 ``` Fetches and summarizes the last 20 unread emails. ``` /email-summary --all ``` Fetches and summarizes all unread emails. ## Setup Requirements Before using this skill, ensure: - Gmail API credentials are configured - Environment variable `GMAIL_CREDENTIALS_PATH` points to your credentials JSON file - Python 3 and required packages are installed (see setup guide in README.md)


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: overdue-lin/pdfly-cli (version 1.0.0)

--- name: pdfly-cli description: | A pure-python CLI application for manipulating PDF files. Use when needing to compress, merge, split, rotate, sign, extract images/text, or convert files to/from PDF. Commands: 2-up, booklet, cat, check-sign, compress, extract-annotated-pages, extract-images, extract-text, meta, pagemeta, rm, rotate, sign, uncompress, update-offsets, x2pdf. Trigger phrases: "compress PDF", "merge PDFs", "split PDF", "rotate pages", "extract images from PDF", "sign PDF", "PDF metadata", "convert to PDF". --- # pdfly CLI Skill A pure-python CLI for PDF manipulation built on [pypdf](https://pypdf.readthedocs.io/), [fpdf2](https://pyfpdf.github.io/fpdf2/), and [endesive](https://endesive.readthedocs.io/). ## Installation ```bash pip install pdfly # or with uv uvx pdfly --help ``` ## Quick Reference | Command | Description | |---------|-------------| | `pdfly compress IN OUT` | Lossless compression | | `pdfly cat IN [PAGES]... -o OUT` | Merge/split pages | | `pdfly rm IN [PAGES]... -o OUT` | Remove pages | | `pdfly rotate -o OUT IN DEG [PGRGS]` | Rotate pages | | `pdfly sign IN --p12 CERT [-o OUT]` | Sign PDF | | `pdfly check-sign IN --pem CERT` | Verify signature | | `pdfly meta IN [-o FORMAT]` | Show metadata | | `pdfly pagemeta IN IDX [-o FORMAT]` | Page details (0-based) | | `pdfly extract-images IN` | Extract images | | `pdfly extract-text IN` | Extract text | | `pdfly extract-annotated-pages IN [-o OUT]` | Extract annotated | | `pdfly uncompress IN OUT` | Decompress streams | | `pdfly update-offsets IN [-o OUT]` | Fix offsets | | `pdfly 2-up IN OUT` | 2-up layout | | `pdfly booklet IN OUT [-b FILE] [-c FILE]` | Booklet layout | | `pdfly x2pdf [FILES]... -o OUT` | Convert to PDF | ## Output Formats (meta/pagemeta) ```bash -o text # Default -o json -o yaml ``` ## Page Range Syntax See [references/page-ranges.md](references/page-ranges.md) for full syntax including negative indices and strides. ## PDF Signing See [references/sign.md](references/sign.md) for complete signing/verification workflow. ## Rotate Command The `-o/--output` option is **required** and must come **before** positional arguments: ```bash pdfly rotate -o output.pdf input.pdf 90 "1-3" ``` See [references/rotate.md](references/rotate.md) for full examples. ## Extract/Merge (cat) See [references/cat.md](references/cat.md) for complex merge/split operations. ## Key Libraries | Library | Purpose | |---------|---------| | `pypdf` | PDF reading/writing, page manipulation | | `fpdf2` | Creating PDFs from images/text | | `endesive` | PDF signing with PKCS12 | | `pillow` | Image processing | | `cryptography` | Cryptographic operations | ## Exit Codes - `0` = Success - `1` = Error (file not found, invalid input, etc.)


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: silent404/keep-accounts (version 2.1.0)

--- name: Family Account Book / 家庭财务记账 description: 家庭财务记账系统，负责记录家庭收支、查看余额、月度统计等财务操作。当用户提到以下场景时使用此技能：(1) 记录消费、支出、收入 - 如"花了XX钱"、"今天吃了顿饭XX元"、"发了工资XX"；(2) 查看账户余额 - 如"账户还剩多少钱"、"余额多少"；(3) 财务统计 - 如"这个月花了多少"、"月度报表"、"本周支出"；(4) 账户转账 - 如"从A账户转B账户"、"转账XX元"；(5) 创建新账户或初始化账本；(6) 询问预算或财务规划。 --- # 家庭财务记账技能 ## 快速开始 ### 常用命令 ```bash # 快速记账 python3 /path/to/finances/scripts/finance_db.py --add 账本 账户 类型 金额 分类 描述 # 查看所有账户余额 python3 /path/to/finances/scripts/finance_db.py -b # 月度统计报表 python3 /path/to/finances/scripts/finance_db.py -s [YYYY-MM] ``` ### 参数说明 | 参数 | 说明 | 示例 | |------|------|------| | 账本 | 账本名称 | default | | 账户 | 账户名称或ID | 主账户 / B001 | | 类型 | 收入/支出/转账 | 收入 / 支出 | | 金额 | 数字金额 | 79.7 | | 分类 | 消费分类 | 餐饮 / 工资 / 购物 | | 描述 | 交易描述 | 肯德基 / 月薪 | ## 记账工作流 ### 1. 记录消费 ``` 用户: "今天搓一顿肯德基，79块7" 操作: python3 .../finance_db.py --add default 主账户 支出 79.7 餐饮 肯德基 ``` ### 2. 记录收入 ``` 用户: "今天发工资了，15000" 操作: python3 .../finance_db.py --add default 主账户 收入 15000 工资 月薪 ``` ### 3. 查看余额 ``` 用户: "看一下所有账户" 操作: python3 .../finance_db.py -b ``` ### 4. 月度统计 ``` 用户: "看一下这个月花了多少" 操作: python3 .../finance_db.py -s 2026-04 ``` ### 5. 转账操作 转账需要记录**两条**交易（一出一入）： 假设用户说"从主账户转1000到日常支出"： ```python # 第一条：主账户支出100（转出） python3 .../finance_db.py --add default 主账户 支出 1000 转账 转至日常支出 # 第二条：日常支出收入1000（转入） python3 .../finance_db.py --add default 日常支出 收入 1000 转账 来自主账户 ``` ### 6. 近7日/特定周期查询 使用Python脚本查询： ```python python3 -c " import sqlite3, datetime conn = sqlite3.connect('{WORKSPACE}/finances/db/finance.db') conn.row_factory = sqlite3.Row cur = conn.cursor() week_ago = (datetime.datetime.now() - datetime.timedelta(days=7)).strftime('%Y-%m-%d') cur.execute(''' SELECT t.date, t.amount, t.category, t.description, a.name as account FROM transactions t JOIN accounts a ON t.account_id = a.id WHERE t.date >= ? ORDER BY t.date DESC ''', (week_ago,)) for r in cur.fetchall(): print(f\" {r['date']} ¥{r['amount']:.2f} [{r['category']}] {r['description']}\") conn.close() " ``` ## 核心原则 1. **严禁编造数据**：金额必须由用户主动提供 2. **统一用ID记录**：账户用ID（如B001），不是名称 3. **转账记录两条**：内部流动需要一出一入两条记录 4. **统计排除转账**：月度报表自动排除转账分类 5. **负数余额是合法的**：部分账户（如投资账户）设计为跟踪盈亏，负数表示亏损 ## 数据库信息 - **数据库路径**: `{WORKSPACE}/finances/db/finance.db` - **详细Schema**: 参见 `references/finance.md` ## 账户ID速查 | ID | 账户名称 | |----|----------| | B001 | 主账户 | | B002 | 储蓄账户 | | B003 | 日常支出 | | B004 | 梦想基金 | | B005 | 医疗基金 | | B006 | 零花钱 | | B007 | 游戏账户 | | B008 | 数字资产 | | B009 | 备用账户 | | B010 | 养老账户A | | B011 | 养老账户B | | B012 | 子女基金 | | B013 | 二手平台 | | B014 | 投资账户 |


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: haresh-sai06/haresh-checkout-flow (version 1.0.1)

--- name: haresh-checkout-flow description: "Process e-commerce checkout via n8n webhook integration" user-invocable: true --- # Checkout Flow Skill ## Purpose Manages the complete checkout process including validation, authentication, shipping, and payment. ## When to Use - User wants to checkout or place an order - User asks to proceed to payment - User wants to complete their purchase ## Workflow ### Step 1: Validate Cart Call n8n webhook at http://localhost:5678/webhook/checkout-validate to check cart items availability and inventory status ### Step 2: Check Authentication Determine if user is authenticated from context. If guest, present login options or continue as guest. ### Step 3: Collect Shipping Information Show saved addresses for authenticated users or collect details for guests. ### Step 4: Payment Processing Present payment options and call n8n webhook at http://localhost:5678/webhook/checkout-process ### Step 5: Order Confirmation Display order summary and get final confirmation from user. ## Security Requirements - Verify authentication status from JWT claims - Never store or log full payment details - Validate all inputs before sending to backend ## Error Handling - If cart validation fails, show specific errors - If payment fails, allow retry with different method - If inventory changes, notify user


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: humor200/github-rising-stars (version 1.0.0)

--- name: github-rising-stars description: Discover fast-growing GitHub repositories before they appear on the official Trending page. Use when users ask to find emerging/rising GitHub projects, spot early-stage repos gaining momentum, identify hidden gems not yet on Trending, or discover the hottest new repos in the last 1-7 days. Triggers on phrases like "find rising GitHub repos", "GitHub trending before trending", "fast growing repos", "GitHub黑马项目", "增速快的GitHub项目", "还没上trending的项目", "发现早期项目". --- # GitHub Rising Stars Discovers fast-growing GitHub repositories that haven't made the official Trending page yet, by querying the GitHub Search API across multiple dimensions and ranking by **stars per day**. ## Quick Start Run the bundled script directly: ```bash python3 scripts/find_rising.py ``` Default: repos created in the last 3 days, min 20 stars, top 15 results. ## Script Options ``` python3 scripts/find_rising.py [options] --days N Look-back window in days (default: 3, range: 1-7) --min-stars N Minimum star count threshold (default: 20) --top N Number of results to return (default: 15) --lang LANG Filter by programming language (e.g. Python, TypeScript, Go) --json Output machine-readable JSON ``` ### Examples ```bash # Find Python repos rising fast in the last 5 days python3 scripts/find_rising.py --days 5 --lang Python # Find top 20 repos with at least 50 stars python3 scripts/find_rising.py --min-stars 50 --top 20 # JSON output for further processing python3 scripts/find_rising.py --json ``` ## How It Works 1. **Multi-query search** — runs 3 GitHub API queries with overlapping time/star ranges to maximize coverage 2. **Deduplication** — merges results by repo ID 3. **Spam filtering** — removes known low-quality signals (crypto bots, game hacks, follower farms, etc.) 4. **Rate calculation** — computes `stars / age_in_days` for each repo 5. **Ranked output** — sorts by rate descending, shows top N ## Interpreting Results - **Rate > 200/day**: Viral — likely hits Trending within 24h - **Rate 50–200/day**: Fast-rising — worth watching - **Rate < 50/day**: Early signal — may accelerate Repos with **no description** or **no language** tag may be spam or private mirrors — apply extra scrutiny. ## Agent Workflow When a user asks to find rising repos: 1. Run `python3 scripts/find_rising.py` with appropriate flags 2. Present results in a clean table, grouped by theme/category if patterns emerge 3. Highlight repos worth deeper investigation (high rate + meaningful description + known author) 4. Optionally open top repos in browser for quick review ## Limitations - GitHub Search API is unauthenticated by default — rate limit: 10 requests/min. Add a `Authorization: token <PAT>` header in the script for higher limits. - Results reflect repos *created* recently; established repos that suddenly spike are not captured (use `pushed` filter variant for that). - Stars can be artificially inflated; cross-reference with Hacker News / Reddit for validation.


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

--- name: "Explain" version: "1.0.2" description: "Learns how to explain things to your human. Adapts format, depth, and style by topic." changelog: "Restructured with auxiliary files; added Quick Reference" --- ## Adaptive Explanation Preferences **Scope:** Human-facing explanations only. Track what lands and what misses. ### Quick Reference | File | Purpose | |------|---------| | `formats.md` | When bullets/prose/headers work or fail | | `depth.md` | Calibrating detail level by signals | | `analogies.md` | When comparisons help vs hurt | | `domains.md` | Patterns for code, concepts, debugging, decisions | | `dimensions.md` | Full list of trackable dimensions | ### Core Loop 1. **Observe** — Notice when explanations work vs confuse 2. **Signal** — "Got it" = worked. Follow-ups / "wait what?" = missed 3. **Pattern** — After 2+ consistent signals, note it 4. **Confirm** — Only after explicit yes, add to memory ### Defaults (Until Learned) - Lead with direct answer, context after - Match question length (short Q = short A) - One concept at a time for complex topics - Offer depth: "want more detail?" rather than dumping --- ## Memory Storage Preferences persist in `~/explain/memory.md`. Create on first use: ```markdown ## Format <!-- Format: "topic: preference (level)" --> <!-- Ex: code: bullets (confirmed), concepts: prose (pattern) --> ## Depth <!-- Format: "topic: depth (level)" --> <!-- Ex: React: deep (confirmed), Git: tldr (pattern) --> ## Examples <!-- Format: "topic: example-style (level)" --> <!-- Ex: SQL: always examples (confirmed), theory: minimal (pattern) --> ## Jargon <!-- Format: "domain: jargon-level (level)" --> <!-- Ex: programming: full jargon (confirmed), finance: simplify (pattern) --> ## Never <!-- Approaches that fail. Format: "approach (level)" --> <!-- Ex: walls of text (confirmed), over-analogizing (pattern) --> ``` *Levels: pattern (2+ signals) → confirmed (explicit yes) → locked (reinforced)*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yevladimir/led-ctrl (version 1.0.1)

# Pi GPIO Control Skill This skill allows OpenClaw agents to control GPIO pins on a Raspberry Pi via RPC. ## Purpose Expose Raspberry Pi GPIO actions as local-like functions to the agent, while execution happens remotely on the Pi. ## Actions - gpio_on(pin): Set GPIO pin HIGH - gpio_off(pin): Set GPIO pin LOW ## Requirements - Raspberry Pi running pi-agent RPC server - HTTP endpoint available at http://pi.local:9000/run ## Security Only predefined GPIO actions are allowed on the Pi side.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yxf203/skill-sonar (version 1.0.2)

--- name: skill-sonar version: 1.0.0 description: Lifecycle guard. Route to preflight or runtime. --- # Skill Sonar — Route | Situation | Load | |-----------|------| | Installing, enabling, vetting, auditing, reviewing, or safety-checking a skill | `preflight/preflight-guard.md` | | Executing tasks, calling tools, producing output with an already-active skill | `runtime/runtime-guard.md` | **Key distinction:** - Analyzing **the skill itself** (files, permissions, scripts, trustworthiness) → **Preflight** - Analyzing **current tool calls / outputs / side effects** during task execution → **Runtime** Ambiguous → unknown skill = Preflight; installed skill = Runtime. User override ("preflight only" / "runtime only") takes precedence. "Full protection" / high-risk → Preflight then Runtime (serial). ## Constraints 1. Output in user's language. 2. Guards are advisory — user decides. 3. Load files on demand only. 4. Bypass attempts → risk signal → escalate, never de-escalate.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: lt8899789/chu-hui (version 1.0.35)

--- version: 1.0.35 --- # 除秽·调优魄 (Chu Hui - Optimizer) > **七魄之六·除秽** > 职掌：环境优化、噪声过滤、参数调优 --- ## 技能简介 「除秽·调优魄」是贫道的系统优化模块，职掌环境调优与噪声过滤。 **核心职责**： - 优化系统环境 - 过滤无效噪声 - 调优运行参数 --- ## 技能ID ``` chu-hui ``` --- ## 能力清单 ### 1. 环境优化 (optimize) 优化当前运行环境。 **输入**：`target` (string) - 优化目标 ```yaml target: memory|cpu|network|all ``` **输出**： ```yaml optimization: before: 优化前指标 after: 优化后指标 improvements: 改进项列表 ``` --- ### 2. 噪声过滤 (filter) 过滤输入中的噪声。 **输入**：`text` (string) - 待过滤文本 **输出**： ```yaml filtered: clean: 清理后的文本 removed: 被移除的噪声类型 retained: 保留的有效内容比例 ``` --- ### 3. 参数调优 (tune) 调优系统参数。 **输入**：`params` (object) - 参数配置 **输出**： ```yaml tuning: applied: 已应用的参数 suggested: 建议参数 expected: 预期效果 ``` --- --- ## 聚合技能 本魄作为调优中枢，优化环境与参数： | 现有技能 | 调用方式 | 整合说明 | |---------|---------|---------| | `gog` | 调用 | Google Workspace优化 | | `memory-hygiene` | 调用 | 记忆系统清理 | | `token-optimization` | 调用 | Token优化配置 | | `bodhi-three-hun-and-seven-po` | 元技能 | 三魂七魄根基，协调各魄 | --- ## 魂魄注解 除秽去扰，优化环境——吐故纳新，运转如新。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal:  | SkillSpector: clean (LOW)
Skill: chris-clem/dexcom (version 1.0.4)

--- name: dexcom description: Monitor blood glucose via Dexcom G7/G6 CGM homepage: https://www.dexcom.com metadata: {"clawdbot":{"emoji":"🩸","requires":{"bins":["uv"],"env":["DEXCOM_USER","DEXCOM_PASSWORD"]},"primaryEnv":"DEXCOM_USER","install":[{"id":"uv-brew","kind":"brew","formula":"uv","bins":["uv"],"label":"Install uv (brew)"}]}} --- # Dexcom CGM Real-time blood glucose monitoring via Dexcom G6/G7 continuous glucose monitor. ## Setup Set environment variables: ```bash export DEXCOM_USER="[REDACTED_SECRET]" export DEXCOM_PASSWORD="your-password" export DEXCOM_REGION="ous" # or "us" (optional, defaults to "ous") ``` Or configure in `~/.clawdbot/clawdbot.json`: ```json5 { skills: { "dexcom": { env: { DEXCOM_USER: "[REDACTED_SECRET]", DEXCOM_PASSWORD: "your-password", DEXCOM_REGION: "ous" } } } } ``` ## Usage **Formatted report:** ```bash uv run {baseDir}/scripts/glucose.py now ``` **Raw JSON:** ```bash uv run {baseDir}/scripts/glucose.py json ``` ## Example Output ``` 🩸 Glucose: 100 mg/dL (5.6 mmol/L) 📈 Trend: steady ➡️ 🎯 Status: 🟢 In range ⏰ 2026-01-18 09:30:00 ``` ## Requirements - Dexcom G6 or G7 with Share enabled - uv (Python package manager) - Valid Dexcom Share credentials

path: scripts/glucose.py
content: #!/usr/bin/env python3
# /// script
# requires-python = ">=3.10"
# dependencies = ["pydexcom", "fire"]
# ///

import json
import os

from pydexcom import Dexcom
import fire


def get_reading():
    """Get current glucose reading."""
    username = os.getenv("DEXCOM_USER")
    [REDACTED_SECRET]"DEXCOM_PASSWORD")
    region = os.getenv("DEXCOM_REGION", "ous")

    if not username or not password:
        raise SystemExit("Missing DEXCOM_USER or DEXCOM_PASSWORD")

    dexcom = Dexcom(username=username, [REDACTED_SECRET], region=region)
    reading = dexcom.get_current_glucose_reading()
    return {
        "mg_dl": reading.mg_dl,
        "mmol_l": reading.mmol_l,
        "trend": reading.trend_description,
        "time": str(reading.datetime),
    }


def report():
    """Print formatted glucose report."""
    r = get_reading()
    trend_emoji = {
        "rising quickly": "⬆️⬆️",
        "rising": "⬆️",
        "rising slightly": "↗️",
        "steady": "➡️",
        "falling slightly": "↘️",
        "falling": "⬇️",
        "falling quickly": "⬇️⬇️",
    }.get(r["trend"].lower(), "❓")

    mg = r["mg_dl"]
    if mg < 70:
        status = "🔴 LOW"
    elif mg < 80:
        status = "🟡 Low"
    elif mg <= 140:
        status = "🟢 In range"
    elif mg <= 180:
        status = "🟡 High"
    else:
        status = "🔴 HIGH"

    print(f"🩸 Glucose: {mg} mg/dL ({r['mmol_l']:.1f} mmol/L)")
    print(f"📈 Trend: {r['trend']} {trend_emoji}")
    print(f"🎯 Status: {status}")
    print(f"⏰ {r['time']}")


def json_output():
    """Print raw reading as JSON."""
    print(json.dumps(get_reading(), indent=2, sort_keys=True))


if __name__ == "__main__":
    fire.Fire(
        {
            "now": report,
            "json": json_output,
        }
    )


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