OpenClaw/clawhub-security-signals huggingface dataset:
Skill: ysy88092144/debug-companion (version 1.0.0)

--- slug: debug-companion name: 调试伴侣 description: 根据错误信息/traceback 自动分析根因并给出修复建议 author: workflow-coordinator version: 1.0.0 tags: - debug - error - troubleshooting - developer-tools --- # 调试伴侣 SKILL.md > 你的专属调试助手 —— 粘贴错误信息，立即得到根因分析和修复方案 ## 技能简介 **调试伴侣**（Debug Companion）是一个 OpenClaw 技能，专门帮助开发者快速定位和修复代码错误。 ### 核心能力 - 🔍 **智能解析**：自动识别错误类型、文件位置、行号 - 🎯 **根因分析**：用大白话解释"为什么会出错" - ✅ **修复建议**：给出具体操作步骤，甚至直接生成补丁 - 📚 **参考资料**：附赠类似问题的解决方案链接 ### 支持语言 | 语言 | 状态 | |------|------| | Python | ✅ | | JavaScript / Node.js | ✅ | | TypeScript | ✅ | | Go | ✅ | | Java | ✅ | | C++ | ✅ | | Rust | ✅ | | PHP | ✅ | | Ruby | ✅ | --- ## 工作流程 ``` 用户发送错误信息/traceback ↓ 错误信息解析 （提取错误类型、文件、行号） ↓ 智能搜索 （Tavily + Code Search） ↓ 根因分析 + 修复建议 ↓ 结构化输出 ``` --- ## 使用方式 ### 触发词 用户发送以下内容时会激活技能： - `调试 + 错误信息` - `报错 + traceback` - `出了个bug` - `这个错误怎么修` - 直接粘贴错误信息/traceback ### 输入格式 **推荐格式**： ``` [错误类型]: [错误描述] File "[文件]", line [行号], in [函数名] [代码] [更多堆栈信息] ``` **示例**： ``` TypeError: Cannot read property 'map' of undefined at processData (/app/utils.js:15:20) at handleRequest (/app/server.js:42:10) ``` ### 可选上下文 | 上下文 | 说明 | 示例 | |--------|------|------| | 语言 | 指定编程语言 | `Python`、`JavaScript` | | 代码片段 | 相关代码 | 粘贴出错的代码 | | 环境信息 | OS、版本等 | `Node.js v18`、`Python 3.11` | --- ## 输出格式 ```markdown ## 🔍 错误解析 **错误类型**：TypeError **问题文件**：/app/utils.js:15 **问题描述**：在 `processData` 函数中尝试调用 `.map()`，但数据是 `undefined` ## 🎯 根因分析 你正在对 `data` 变量调用 `.map()` 方法，但这个变量是 `undefined`。这通常是因为： 1. API 返回的数据结构不符合预期 2. 异步操作尚未完成就开始处理 3. 数据获取函数出错返回了空值 ## ✅ 修复建议 1. **添加防御性检查**：在使用 `.map()` 前检查 `data` 是否存在 ```javascript if (!data) { console.error('数据不存在:', data); return []; } ``` 2. **确保数据加载完成**：使用 `await` 或检查 Promise 状态 3. **添加默认值**：使用 `data ?? []` 防止 undefined ## 📚 参考资料 - [MDN: undefined 处理](https://developer.mozilla.org/...) - [Stack Overflow: Cannot read property of undefined](https://stackoverflow.com/...) ``` --- ## 错误类型速查表 | 错误类型 | 常见原因 | |----------|----------| | `TypeError: Cannot read property 'X' of undefined` | 访问了 undefined/null 的属性 | | `ReferenceError: X is not defined` | 变量未定义或拼写错误 | | `SyntaxError` | 语法错误，缺少括号/引号等 | | `IndexError: list index out of range` | 数组索引越界 | | `KeyError: 'X'` | 字典/对象没有这个键 | | `NullPointerException` | 空指针调用 | | `ENOENT: No such file or directory` | 文件路径错误 | | `Permission denied` | 权限不足 | --- ## 工具调用 技能内部使用以下工具： | 工具 | 用途 | |------|------| | `tavily_search` | 搜索类似问题的解决方案 | | `code_search` | 搜索官方文档和权威教程 | | `web_fetch` | 抓取详细修复方案页面 | --- ## 注意事项 1. **隐私安全**：如果错误信息包含敏感路径或密钥，会自动脱敏处理 2. **上下文重要**：提供更多代码上下文能获得更准确的建议 3. **版本相关**：某些错误在不同版本语言中处理方式不同，请提供版本信息 4. **二次确认**：涉及代码修改时，建议先在测试环境验证 --- ## 示例对话 **用户**： ``` js报错：TypeError: Cannot read property 'map' of undefined at processData (utils.js:15:20) at handleRequest (server.js:42:10) ``` **调试伴侣**： （按上方输出格式返回完整分析） --- ## 更新日志 - 2026-03-27：v1.0.0 初始版本 - 支持8种主流语言 - 错误解析+根因分析+修复建议 - Tavily搜索+代码搜索双保险


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: zhangpl666ya/printer-control (version 1.0.0)

--- name: printer-control description: Control local and network printers from your computer. Use when you need to: (1) List available printers, (2) Print text files or documents, (3) Print raw text to a specific printer, (4) Check printer status, (5) Set default printer. Supports Windows with win32print or PowerShell fallback. Now with partial name matching for easier printer selection. --- # Printer Control Skill This skill enables agent-controlled printing on Windows systems. ## ⚠️ Security & Permissions **Requires explicit user authorization** before any print operation. Printing consumes physical resources and can be disruptive. Always confirm: - Which printer to use - What to print - Number of copies ## Quick Start ### List Available Printers ```bash python scripts/list_printers.py ``` Or with PowerShell: ```powershell powershell -Command "Get-Printer | Select-Object Name, Type, Shared, PortName" ``` ### Print a Text File ```bash python scripts/print_file.py --printer "Printer Name" --file "C:\path\to\file.txt" ``` ### Print Raw Text ```bash python scripts/print_text.py --printer "Printer Name" --text "Hello, World!" ``` ### Set Default Printer ```bash python scripts/set_default.py --printer "Printer Name" ``` ## Scripts | Script | Purpose | |--------|---------| | `list_printers.py` | List all available printers | | `print_file.py` | Print a file to a specified printer | | `print_text.py` | Print raw text string | | `set_default.py` | Set default printer | | `printer_status.py` | Check printer status (online, paper, toner) | ## Dependencies ### Option 1: pywin32 (Recommended for Windows) ```bash pip install pywin32 ``` ### Option 2: PowerShell (Built-in, no install needed) The scripts automatically fall back to PowerShell if pywin32 is not available. ## Usage Examples **Example 1: List printers and pick one** ```bash python scripts/list_printers.py # Output shows available printers, pick one by name ``` **Example 2: Print a document** ```bash python scripts/print_file.py --printer "HP LaserJet Pro" --file "report.pdf" --copies 2 ``` **Example 3: Print a quick note** ```bash python scripts/print_text.py --text "Meeting at 3pm" --printer "Office Printer" ``` ## Troubleshooting ### "Printer not found" - Run `list_printers.py` to verify the exact printer name - Printer names are case-sensitive ### "Access denied" - Some network printers require authentication - Check printer permissions ### "pywin32 not available" - Scripts will auto-fallback to PowerShell - For best results, install pywin32: `pip install pywin32` ### Print job stuck in queue ```powershell powershell -Command "Restart-Service -Name Spooler" ``` ## API Reference See `references/printer-api.md` for detailed API documentation and Windows print subsystem details.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: katrina-jpg/data-automation-service (version 1.0.0)

# Data Automation Service 數據處理同自動化Workflow服務 ## 功能 1. **Data Cleaning** - 清理同整理數據 2. **Automation Workflow** - 整自動化的data pipeline 3. **Reporting** - 自動生成report同dashboard 4. **API Integration** - 對接各種數據源 ## 安裝 ```bash npx clawhub@latest install data-automation-service ``` ## 使用 當用戶話「整數據自動化」既時候： 1. 了解佢既數據來源同需求 2. 設計自動化流程 3. 提供報價同implementation plan ## 範例 ``` User: 想自動化我既excel report AI: 你既數據來源係邊？每星期要report定每日？ ``` ## 收費 - 簡單automation: $100-300 - 中等複雜: $300-800 - 企業級: $1000-3000 - 月費維護: $100-300/月


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: leooooooow/creator-deal-ops (version 1.0.3)

--- name: creator-deal-ops description: Run creator brand-deal operations from inbound brief to delivery and payment tracking. Use when the user needs sponsorship workflow support, deliverable scoping, revision control, pricing/terms checks, or payout follow-up structure. --- # Creator Deal Ops ## Skill Card - **Category:** Operations - **Core problem:** How to run creator sponsorships without chaos? - **Best for:** Sponsor collaboration operations - **Expected input:** Brand brief, deliverables, timeline, revision/payment rules - **Expected output:** Deal plan, risk flags, revision/payment checklist - **Creatop handoff:** Export checklist into team SOP / Notion / Feishu ## Overview Run brand deals with clear scope, protected margin, and predictable payments. ## Workflow ### 1) Intake and qualification Capture: - brand/client - campaign objective - deliverables - timeline - usage rights + exclusivity - budget/rate range Flag incomplete briefs immediately. ### 2) Scope into delivery plan Define in writing: - exact deliverables (count/format) - revision limit - acceptance criteria - milestone calendar ### 3) Risk and margin gate Evaluate: - scope creep risk - timeline risk - compliance risk - margin sanity - payment risk Decision output: - **Accept** - **Negotiate** - **Decline** Non-negotiables (default redlines): - unlimited revisions = not acceptable - unclear usage rights = not acceptable - missing due date/payment terms = not acceptable ### 4) Payment operations Track: - invoice sent date - due date - status - next follow-up action If overdue, send concise reminders with delivery proof. ## Output bundle Return 4 blocks: 1. deal scorecard (accept/negotiate/decline) 2. redline terms list 3. delivery checklist 4. payment tracker row + follow-up cadence ## Quality rules - Protect creator downside while preserving partner tone. - Be explicit on rights, revisions, and payment terms. - Prefer short, actionable language over legal fluff. ## License Copyright (c) 2026 **Razestar**. This skill is provided under **CC BY-NC-SA 4.0** for non-commercial use. You may reuse and adapt it with attribution to Razestar, and share derivatives under the same license. Commercial use requires a separate paid commercial license from **Razestar**. No trademark rights are granted.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: leooooooow/gmv-max-check (version 1.0.0)

--- name: gmv-max-check description: Check whether a GMV Max setup is usable, risky, or ineligible based on configuration choices, order volume, ROI handling, and conflicting modes. Use when the user wants to avoid setup mistakes, understand why performance is unstable, or verify whether compensation eligibility is likely preserved. --- # GMV Max Check Check the setup before the account burns money or loses eligibility. ## Skill Card - **Category:** Ads Operations - **Core problem:** Is this GMV Max setup safe and usable? - **Best for:** New launches, troubleshooting, and compensation-risk checks - **Expected input:** GMV Max settings + order volume + recent handling notes - **Expected output:** Configuration verdict + risks + next-fix actions - **Creatop handoff:** Pass output into ad setup and troubleshooting workflows ## Before you run Ask the user to clarify: - current GMV Max objective / target - whether ROI target was manually changed - whether max delivery, promo mode, or creative boost is enabled - daily order volume - whether this is a new or mature item - whether recent instability is the main issue If the user does not know the settings, ask for screenshots or exported setup fields first. ## Optional tools / APIs Useful but not required: - ad account export - campaign settings screenshots - daily orders sheet - ROI / spend export If no API is connected, use screenshot or manual-input mode. ## Workflow 1. Confirm the setup context. 2. Review the configuration against known risk checks. 3. Identify conflicting settings or compensation-risk conditions. 4. Decide whether the setup is: - usable - usable with risk - misconfigured 5. List the next fixes in priority order. ## Output format Return in this order: 1. Setup verdict 2. Main risk flags 3. Compensation-risk note 4. Priority fixes 5. What to monitor next ## Fallback mode If the user only provides screenshots or rough settings: - infer configuration as carefully as possible - list assumptions explicitly - avoid false certainty on compensation eligibility ## Quality rules - Do not invent platform guarantees. - Separate performance problems from setup problems. - Flag uncertainty when settings are incomplete. - Prioritize configuration conflicts before creative advice. ## License Copyright (c) 2026 **Razestar**. This skill is provided under **CC BY-NC-SA 4.0** for non-commercial use. You may reuse and adapt it with attribution to Razestar, and share derivatives under the same license. Commercial use requires a separate paid commercial license from **Razestar**. No trademark rights are granted.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: itspremkumar/video-gen-cli (version 5.0.0)

--- name: Video Generator CLI description: Guide for running the Video Generator CLI commands. version: 5.0.0 metadata: requires: bins: - node - npm - ffmpeg - python env: - PEXELS_API_KEY --- # Video Generator CLI Operations Skill This skill explains the different terminal commands available to run, resume, or fix video generations. ## 1. Standard Generation Commands These commands are used for a "Fresh Start." They clean up old temporary files to prevent conflicts. ### `npm run generate` (or `npm run build`) - **What it does:** 1. Wipes the `.video-cache.json` file. 2. Cleans the `public/videos` and `public/audio` folders. 3. Parses your script from `input/input-scripts.json`. 4. Downloads new stock footage and generates voiceovers. 5. Renders the video scene-by-scene (Segmented Mode). - **When to use:** When you have a new script or want to see fresh visuals for an existing script. --- ## 2. Advanced Recovery Commands These commands save time by reusing already-completed work. ### `npm run resume` - **What it does:** 1. **Preserves** everything in `public/` and the `.video-cache.json`. 2. Only downloads visuals/audio that are **missing**. 3. Only renders segments that **don't exist yet** in the output folder. 4. Automatically stitches everything together at the end. - **When to use:** If your computer crashed, or you lost internet during a long generation. It will pick up exactly where it left off. ### `npm run segment` - **What it does:** 1. Skips **ALL** asset fetching and generation. 2. Jumps directly to "Phase 7: Assembly." 3. Takes the existing `.mp4` segments in your output folder and merges them. - **When to use:** Use this if the video was rendered successfully but the final "stitching" failed or if you want to manually re-assemble the segments. --- ## 3. Developer / Debugging Tools ### `npm run dev` - **What it does:** Starts the local asset server. - **When to use:** Only needed if you are manually debugging the Remotion components in the browser. --- ## 4. Operational Summary | Command | Action | Fresh/Resume | | :--- | :--- | :--- | | `npm run generate` | Full Process | **Fresh** (Wipes old data) | | `npm run build` | Full Process | **Fresh** (Alias for generate) | | `npm run resume` | Skip Existing | **Resume** (Saves time) | | `npm run segment` | Assembly Only | **Fix** (Stitching only) | --- ## 5. Configuration (JSON Script) When editing `input/input-scripts.json`, agents can use these newer properties: | Property | Type | Description | | :--- | :--- | :--- | | `showText` | Boolean | Set to `false` to disable on-screen subtitles. | | `defaultVideo` | String | Filename in `input/input-assests/` to use as a visual fallback. | | `orientation` | String | `portrait` or `landscape`. | | `voice` | String | AI voice ID (e.g., `en-US-JennyNeural`). |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: freedompixels/cn-unit-converter (version 1.2.5)

--- slug: cn-unit-converter name: 单位换算工具 version: "1.2.1" author: 千策 --- # 单位转换器 将数值从一个单位转换为另一个单位。支持长度、重量、温度、容量、面积、数据、时间7大类。 ## 用法 ``` python3 scripts/unit_converter.py <值> <源单位> <目标单位> ``` ## 示例 - `python3 scripts/unit_converter.py 100 km mi` → 62.1371英里 - `python3 scripts/unit_converter.py 37 c f` → 98.6华氏度 - `python3 scripts/unit_converter.py 10 kg lb` → 22.0462磅 - `python3 scripts/unit_converter.py 1 hectare mu` → 15亩

path: scripts/unit_converter.py
content: #!/usr/bin/env python3
import sys, json

CONVERSIONS = {
    # 长度
    ('km','mi'): 0.621371, ('mi','km'): 1.60934,
    ('m','ft'): 3.28084, ('ft','m'): 0.3048,
    ('m','cm'): 100, ('cm','m'): 0.01,
    ('cm','inch'): 0.393701, ('inch','cm'): 2.54,
    ('km','m'): 1000, ('m','km'): 0.001,
    # 重量
    ('kg','lb'): 2.20462, ('lb','kg'): 0.453592,
    ('kg','g'): 1000, ('g','kg'): 0.001,
    ('g','oz'): 0.035274, ('oz','g'): 28.3495,
    ('kg','jin'): 2, ('jin','kg'): 0.5,
    # 温度
    ('c','f'): lambda c: c*9/5+32,
    ('f','c'): lambda f: (f-32)*5/9,
    ('c','k'): lambda c: c+273.15,
    ('k','c'): lambda k: k-273.15,
    # 容量
    ('l','ml'): 1000, ('ml','l'): 0.001,
    ('l','gal'): 0.264172, ('gal','l'): 3.78541,
    ('l','cup'): 4.22675, ('cup','l'): 0.236588,
    # 面积
    ('sqm','sqft'): 10.7639, ('sqft','sqm'): 0.092903,
    ('hectare','mu'): 15, ('mu','hectare'): 1/15,
    # 数据
    ('gb','mb'): 1024, ('mb','gb'): 1/1024,
    ('tb','gb'): 1024, ('gb','tb'): 1/1024,
    # 时间
    ('hour','min'): 60, ('min','hour'): 1/60,
    ('min','sec'): 60, ('sec','min'): 1/60,
    ('day','hour'): 24, ('hour','day'): 1/24,
}

def convert(value, from_unit, to_unit):
    key = (from_unit.lower(), to_unit.lower())
    if key in CONVERSIONS:
        rate = CONVERSIONS[key]
        if callable(rate):
            result = rate(value)
        else:
            result = value * rate
        return {'result': round(result, 4), 'from': f'{value}{from_unit}', 'to': f'{round(result, 4)}{to_unit}'}
    return {'error': '不支持的单位转换'}

if __name__ == '__main__':
    if len(sys.argv) < 4:
        print(json.dumps({'error': '用法: unit_converter.py <值> <单位1> <单位2>'}))
    else:
        print(json.dumps(convert(float(sys.argv[1]), sys.argv[2], sys.argv[3]), ensure_ascii=False))


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: laninga/python-debug-assistant (version 1.0.0)

--- name: python-debug-assistant description: Python代码调试助手。帮助诊断和修复Python代码错误，覆盖SyntaxError、TypeError、NameError等10+常见错误类型，提供错误解读、代码定位、修复方案和调试技巧。 version: "2.0" --- # Python Debug 助手 当用户提交 Python 报错信息或代码问题时，按以下流程诊断并给出修复方案。 ## 执行流程 ### 步骤 1：解析输入 判断用户输入包含哪些信息： | 输入组合 | 执行分支 | |----------|----------| | 错误信息 + 代码片段 | → 步骤 2（完整诊断） | | 只有错误信息（无代码） | → 步骤 2A（解释错误 + 常见原因） | | 只有代码（无报错） | → 步骤 2B（静态检查潜在问题） | | 截图/图片 | → 先提取文字，再判断属于以上哪种 | ### 步骤 2：完整诊断 当用户提供了错误信息和代码时： 1. **解析 traceback**：提取错误类型、错误消息、出错文件及行号 2. **对照错误类型表**：确定错误类别（见下方速查表） 3. **定位问题代码**：指出具体哪一行/哪段代码导致问题 4. **分析根因**：解释为什么会发生这个错误 ### 步骤 2A：仅错误信息 给出： - 错误类型的通俗解释 - 该错误最常见的 2-3 种原因 - 提示用户贴出相关代码以便进一步诊断 ### 步骤 2B：仅代码（静态检查） 逐项检查： 1. 语法问题：括号匹配、冒号、缩进一致性 2. 变量使用：是否先定义后使用、拼写是否正确 3. 类型匹配：运算/函数调用的参数类型是否合理 4. 导入语句：模块名是否正确、是否已安装 5. 边界条件：索引范围、字典键存在性、除零等 ### 步骤 3：生成修复方案 1. 给出具体修改步骤 2. 提供修改后的正确代码（标注改了哪里） 3. 如果存在多种修复方式，给出最简洁的一种 ### 步骤 4：附加调试建议 根据错误类型推荐对应的调试方法： - 简单错误（语法/命名）→ 推荐 IDE 提示 + 仔细检查 - 逻辑错误 → 推荐 print 调试或 pdb 断点 - 偶发错误 → 推荐 logging 日志 - 类型相关 → 推荐 type() / isinstance() 检查 ## 错误类型速查表 | 错误类型 | 关键词识别 | 常见原因 | 检查方向 | |----------|-----------|----------|----------| | SyntaxError | "invalid syntax" | 拼写、括号、冒号 | 语法规则 | | IndentationError | "unexpected indent" | 缩进不一致 | 空格/Tab 混用 | | NameError | "name 'x' is not defined" | 变量未定义 | 变量拼写、作用域 | | TypeError | "unsupported operand type" | 类型不匹配 | 操作数类型 | | IndexError | "list index out of range" | 索引越界 | 列表长度 | | KeyError | "KeyError: 'x'" | 键不存在 | 字典键名 | | ValueError | "invalid literal" | 值不合法 | 类型转换 | | AttributeError | "has no attribute" | 属性/方法不存在 | 对象类型 | | ImportError | "No module named" | 模块未安装 | 包名拼写 | | FileNotFoundError | "No such file" | 文件路径错误 | 路径检查 | ## 输出模板 严格按以下结构输出诊断结果： ``` ## 🔍 问题分析 - **错误类型**：[错误类型名称] - **错误信息**：[原始错误信息解读] - **根因分析**：[为什么会出错，用通俗语言解释] ## 📍 问题定位 [指出具体出错的代码行，引用原始代码] ## ✅ 修复方案 [修改步骤说明] [修改后的完整代码，关键改动处加注释标注] ## 💡 调试建议 [1-2 条针对性的调试技巧] ``` ## 触发场景 以下表述应触发此 skill： - "帮我 debug / 调试一下" - "这个 Python 代码报错了" - "为什么运行不了 / 报这个错" - "这段代码有什么问题" - "帮我看看这个错误" - "Python 报错怎么解决" ## 使用示例 ### 用户输入 ``` Traceback (most recent call last): File "test.py", line 3, in <module> print(x + y) NameError: name 'y' is not defined 代码： x = 1 print(x + y) ``` ### 预期输出 ``` ## 🔍 问题分析 - **错误类型**：NameError - **错误信息**：变量 'y' 未被定义就尝试使用 - **根因分析**：代码中只定义了 x = 1，但 print 语句中引用了未定义的变量 y。 Python 在执行时找不到 y，因此抛出 NameError。 ## 📍 问题定位 第 3 行 `print(x + y)` — 变量 y 在此处首次出现但从未被赋值。 ## ✅ 修复方案 在使用 y 之前先定义它： x = 1 y = 2 # ← 新增：定义变量 y print(x + y) # 输出 3 ## 💡 调试建议 - 使用 IDE 的自动补全功能可以减少变量名拼写错误 - 遇到 NameError 时，用 `print(dir())` 查看当前作用域中已定义的变量名 ``` ## 参考资料 - Python 内置异常文档：https://docs.python.org/3/library/exceptions.html - 错误速查表（含详细示例）：[references/common-errors.md](references/common-errors.md) - 调试工具使用指南：[references/debugging-tools.md](references/debugging-tools.md)


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: didier-durand/hello-agent-world (version 1.0.0)

--- name: hello-agent-world description: A simple skill that responds with a customized hello message in the user's language. user-invocable: true --- # Hello Agent World Skill When the user asks you to say hello or greet someone, use this skill. ## Instructions 1. Greet the user warmly in their language 2. Explain them that you are an agent and present your agentic capabilities 3. Include the current date and time in the greeting 4. Add a fun emoji 5. If the user specifies a name, personalize the greeting ## Examples - "Say hello" → "你好！👋 现在是 2026年2月17日。很高兴见到你！" - "Greet Alice" → "Hello Alice! 👋 It's February 17, 2026. Great to meet you!"


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jianguo99/bilibili-update-viewer (version 1.0.0)

--- name: bilibili-update-viewer description: 查看B站UP主的最新视频、动态，检查UP主今天是否更新。触发词：B站、UP主、视频更新、今天更新了吗、最新视频、最新动态、查看UP主 metadata: {"openclaw":{"emoji":"📺","requires":{"bins":["python3"]},"os":["darwin","linux","win32"]}} --- # B站UP主查看器 查看B站UP主的最新视频和动态，支持检查UP主今天是否更新。 如果遇到访问太频繁的问题，直接和用户说访问太频繁，不要尝试别的方式。 ## Setup ### 1. 安装依赖 ```bash pip install -r {baseDir}/requirements.txt ``` ### 2. 设置环境变量 需要B站Cookies才能访问API。获取方法：登录 bilibili.com → F12 → Network → 复制任意请求的 Cookie 字段。 ```bash export BILIBILI_COOKIES="你的B站cookies" ``` ## Usage ### 第一步：获取UP主的 mid a. 如果用户直接给了 mid（纯数字），直接进入第二步。 b. 如果用户给的是UP主用户名，先从本地缓存查找： ```bash python3 {baseDir}/get_mid.py "用户名" ``` - 如果输出了 mid 数字，直接使用该 mid 进入第二步。 - 如果输出 `NOT_FOUND`，则通过搜索获取： ```bash python3 {baseDir}/update_viewer.py --search "用户名" --count 1 ``` 从搜索结果中提取 `mid` 数字，进入第二步。 ### 第二步：根据用户意图执行对应命令 根据用户的问题选择合适的命令： **场景A - 用户问"今天更新了吗"、"有没有新视频"等：** ```bash python3 {baseDir}/update_viewer.py --mid {MID} --videos --count 3 ``` 运行后，从输出中查看每条视频的「发布」时间，判断是否有今天的日期（{今天的日期}），然后告诉用户今天是否有更新。如果有，列出今天更新的视频标题和链接。 **场景B - 用户想查看最新视频列表：** ```bash python3 {baseDir}/update_viewer.py --mid {MID} --videos ``` **场景C - 用户想查看最新动态：** ```bash python3 {baseDir}/update_viewer.py --mid {MID} --dynamics ``` ## 命令行参数 ### update_viewer.py | 参数 | 说明 | 必需 | |------|------|------| | `--mid` | UP主的 mid | 与 --search 二选一 | | `--search`, `-s` | 根据用户名搜索UP主 | 与 --mid 二选一 | | `--videos`, `-v` | 显示最新视频 | 否 | | `--dynamics`, `-d` | 显示最新动态 | 否 | | `--count`, `-n` | 显示数量（默认3） | 否 | ## 注意事项 - Cookies 有效期有限，失效后需重新获取 - 请求频率不宜过高，建议间隔 1 秒以上 - 需要设置 BILIBILI_COOKIES 环境变量

path: requirements.txt
content: requests>=2.28.0


path: _meta.json
content: owner: jianguo99
slug: bilibili-update-viewer
displayName: B站 (bilibili) 更新查看

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