OpenClaw/clawhub-security-signals huggingface dataset:
Skill: yz6214589-hash/knowledge-acquisition (version 2.0.1)

--- name: knowledge-acquisition description: 知识获取：多平台内容解析（小红书/微信/网站等）、8类分类、Markdown 笔记生成、可选飞书云盘归档 user-invocable: true metadata: {"openclaw":{"emoji":"🐶","requires":{"anyBins":["node"]}}} --- ## 核心能力 1. 解析小红书、微信、抖音、普通网站链接，抽取文字/图片/视频 2. 视频场景自动执行音频抽取与字幕输出（含时间戳） 3. 6大分类：AI、产品经理、经济（投资/股票/保险/加密货币）、心理学、商业机会、灵感 4. 分类置信度阈值 90%，低于阈值自动发起人工确认 5. 生成标准 Markdown 笔记并输出分类依据日志 6. 飞书归档路径：快乐小狗空间/分类/标题+日期，并返回文档 URL 与 token 7. 外链安全扫描、24 小时缓存清理、关键步骤 3 次重试 ## 使用方式 直接发送链接/文本即可，支持批量换行发送和混合输入


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: wukai8289/sansheng-liubu-skill-map (version 1.0.0)

--- name: sansheng-liubu-skill-map description: 将三省六部组织架构映射为可落地的多 Agent 技能协作配置。用于按中书省、门下省、尚书省与六部标签整理技能分工、职责边界、标准流程、GitHub 对象映射与数据分析分层，适合构建面向现代工程团队的三省六部协作体系。 --- # 三省六部技能映射 本 skill 用于把“三省六部 × 技能库”整理为可落地的协作框架，适用于： - 设计三省六部多 Agent 架构 - 为部门分配技能与职责边界 - 将技能映射到 GitHub、数据分析、测试、审核、文档等对象 - 统一规划、审核、调度、执行、复盘的标准链路 ## 使用方式 当用户要求以下任一事项时，使用本 skill： - 整理三省六部技能配置 - 设计三省六部与技能库的匹配关系 - 按中书省/门下省/尚书省/六部标签规划多 Agent 分工 - 为古典官制风格的多 Agent 系统建立工程化协作框架 - 输出三省六部的职责矩阵、流程图、技能映射表、配置文件 ## 核心规则 1. 三省负责治理，六部负责执行。 2. 同一技能可以被多个部门使用，但必须区分主责、审核、协同。 3. GitHub 相关能力必须映射到明确对象，如 Issue、PR、Milestone、Project、Docs、Release。 4. 数据分析相关能力必须区分为战略分析、经营分析、执行分析。 5. 输出结果优先沉淀为结构化配置文件，而非只给口头说明。 ## 三省匹配 ### 中书省 - 定位：创意生成 → 方案撰写 → 目标制定 - 典型技能：`brainstorming`、`writing-plans`、`docx`、`pptx`、`pdf` - 输出：战略摘要、方案文档、目标定义、Epic/Issue 草案 ### 门下省 - 定位：方案审核 → 风险校验 → 质量把关 - 典型技能：`verification-before-completion`、`requesting-code-review`、`pdf`、`docx` - 输出：审核意见、风险结论、评审报告 ### 尚书省 - 定位：任务分发 → 多 Agent 协同 → 进度监控 - 典型技能：`executing-plans`、`dispatching-parallel-agents`、`subagent-driven-development`、`mcp-builder` - 输出：任务拆解、调度计划、执行看板、阶段汇报 ## 六部匹配 ### 吏部（人事 / 组织管理） - 典型技能：`subagent-driven-development`、`dispatching-parallel-agents` - 职能：子 Agent 角色分配、权限管理、团队协作调度 ### 户部（财务 / 数据管理） - 典型技能：`xlsx`、`data-analysis`、`pdf` - 职能：成本核算、数据统计、报表生成与可视化 ### 礼部（品牌 / 沟通 / 文化） - 典型技能：`brainstorming`、`writing-plans`、`docx`、`pptx`、`pdf`、`canvas-design`、`algorithmic-art` - 职能：品牌宣传、活动策划、文案输出、视觉设计 ### 兵部（项目攻坚 / 应急） - 典型技能：`systematic-debugging`、`webapp-testing`、`executing-plans` - 职能：线上问题处理、技术攻坚、应急响应 ### 刑部（合规 / 风控 / 审核） - 典型技能：`verification-before-completion`、`requesting-code-review`、`xlsx`、`pdf` - 职能：合规检查、代码审核、风险预警、违规处理 ### 工部（技术落地 / 开发） - 典型技能：`test-driven-development`、`systematic-debugging`、`webapp-testing`、`frontend-design`、`canvas-design`、`algorithmic-art`、`web-artifacts-builder`、`mcp-builder`、`subagent-driven-development`、`github-integration` - 职能：前端设计、代码开发、测试部署、工程交付 ## 标准流程 1. 中书省：`brainstorming` → `writing-plans` → 导出 `docx/pptx/pdf` 2. 门下省：`verification-before-completion` → `requesting-code-review` → 输出审核报告 3. 尚书省：`dispatching-parallel-agents` → `mcp-builder` → 分发任务至六部 4. 六部执行： - 工部：`github-integration` → `test-driven-development` → `systematic-debugging` - 户部：`data-analysis` → `xlsx` → `pdf` - 礼部：`canvas-design` → `pptx` - 兵部 / 刑部：全程监控质量与合规 5. 收尾：`verification-before-completion` 最终校验 → 复盘 → GitHub 归档 ## 需要时再读 如需结构化配置，读取： - `references/sansheng_liubu_skill_map.yaml`：完整 YAML 映射 - `references/publishing_notes.md`：发布与维护说明


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jjflydudu/ollama-migrator (version 1.0.0)

--- name: ollama-migrator description: Ollama 模型迁移技能。用于将 Ollama 模型从 C 盘迁移到其他磁盘，释放 C 盘空间。使用场景：(1) C 盘空间不足需要迁移模型，(2) 更换模型存储位置，(3) 检查 Ollama 模型占用空间，(4) 验证迁移后模型可用性 --- # Ollama 模型迁移助手 本技能帮助将 Ollama 模型安全迁移到其他磁盘，释放 C 盘空间。 ## 核心能力 ### 1. 空间分析 - 检查当前模型存储位置 - 计算模型总占用空间 - 检查目标磁盘可用空间 ### 2. 安全迁移 - 停止 Ollama 服务 - 复制模型文件（保留完整性） - 设置环境变量 - 验证迁移结果 ### 3. 回滚支持 - 保留源文件直到验证完成 - 支持手动回滚 - 迁移日志记录 ## 工作流程 ### 步骤 1: 检查状态 ```powershell # 检查当前模型位置和大小 python scripts/check_ollama_status.py ``` ### 步骤 2: 执行迁移 ```powershell # 迁移到 D 盘（默认） python scripts/migrate_ollama.py --target D:\Ollama\models # 迁移到其他位置 python scripts/migrate_ollama.py --target E:\AI\models ``` ### 步骤 3: 验证 ```powershell # 验证模型列表 ollama list # 测试运行模型 ollama run qwen3.5:9b ``` ### 步骤 4: 清理（可选） 确认迁移成功后，删除旧文件： ```powershell python scripts/migrate_ollama.py --cleanup ``` ## 环境变量 迁移后设置的环境变量： - **用户级**: `OLLAMA_MODELS = <目标路径>` - **系统级**: 需要管理员权限（可选） ## 脚本工具 - `scripts/check_ollama_status.py` - 检查 Ollama 状态和模型占用 - `scripts/migrate_ollama.py` - 执行迁移操作 - `scripts/verify_ollama.py` - 验证迁移结果 ## 触发条件 当用户提到： - "Ollama 迁移" - "Ollama 模型移动到其他盘" - "C 盘 Ollama 占用太大" - "Ollama 模型位置" - "迁移 Ollama 到 D 盘" ## 安全机制 ### 必须遵守的规则 1. **迁移前检查**： - 确认 Ollama 服务已停止 - 检查目标磁盘空间充足 - 记录当前模型列表 2. **数据完整性**： - 使用可靠复制（验证大小） - 保留源文件直到验证完成 - 迁移日志记录 3. **用户确认**： - 显示迁移计划 - 用户明确确认后才执行 - 支持预览模式 4. **验证机制**： - 迁移后自动验证模型列表 - 测试运行一个模型 - 确认无误后才建议清理 ## 注意事项 1. **新终端窗口**：环境变量在新打开的终端中生效 2. **运行中的服务**：需要重启 Ollama 服务 3. **权限问题**：系统级环境变量需要管理员权限 4. **备份建议**：重要模型建议先备份


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: brucegutman/pipeworx-holidays (version 1.0.0)

--- name: pipeworx-holidays description: Public holidays for 100+ countries — look up by year, check if today is a holiday, or find the next upcoming ones version: 1.0.0 metadata: openclaw: requires: bins: - curl emoji: "🗓️" homepage: https://pipeworx.io/packs/holidays --- # Public Holidays Get official public holidays for over 100 countries via the Nager.Date API. Look up all holidays in a year, check if today is a holiday, or find the next upcoming holidays for a country. ## Tools | Tool | Description | |------|-------------| | `get_holidays` | All public holidays for a country and year (e.g., US 2025) | | `is_today_holiday` | Check if today is a public holiday in a given country | | `next_holidays` | Upcoming public holidays for a country from today forward | ## When to use - Scheduling features that need to account for public holidays - "Is Monday a bank holiday in the UK?" — check with `is_today_holiday` - Travel planning — see what holidays fall during a trip - Payroll and HR tools that need country-specific holiday calendars ## Example: German holidays in 2025 ```bash curl -s -X POST https://gateway.pipeworx.io/holidays/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_holidays","arguments":{"country":"DE","year":2025}}}' ``` Returns date, name (English), local name (German), and whether it's a fixed or floating holiday. ## Setup ```json { "mcpServers": { "pipeworx-holidays": { "command": "npx", "args": ["-y", "mcp-remote@latest", "https://gateway.pipeworx.io/holidays/mcp"] } } } ```


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

--- name: "lockout" version: "1.0.0" description: "Lockout tagout safety procedure manager. Use when json lockout tasks, csv lockout tasks, checking lockout status." author: "BytesAgain" homepage: "https://bytesagain.com" source: "https://github.com/bytesagain/ai-skills" tags: [lockout, safety, cli, tool] category: "safety" --- # lockout Lockout tagout safety procedure manager. Use when json lockout tasks, csv lockout tasks, checking lockout status. ## Commands ### `status` ```bash scripts/script.sh status ``` Show current status ### `add` ```bash scripts/script.sh add ``` Add new entry ### `list` ```bash scripts/script.sh list ``` List all entries ### `search` ```bash scripts/script.sh search ``` Search entries ### `remove` ```bash scripts/script.sh remove ``` Remove entry by number ### `export` ```bash scripts/script.sh export ``` Export data to file ### `stats` ```bash scripts/script.sh stats ``` Show statistics ### `config` ```bash scripts/script.sh config ``` View or set config ### `help` ```bash scripts/script.sh help ``` ### `version` ```bash scripts/script.sh version ``` ## Configuration Use `scripts/script.sh config <key> <value>` to set preferences. | Variable | Description | |----------|-------------| | `LOCKOUT_DIR` | Data directory (default: ~/.lockout/) | --- *Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: kirkraman/kirk-deep-scraper (version 1.0.0)

# Skill: deep-scraper ## Overview A high-performance engineering tool for deep web scraping. It uses a containerized Docker + Crawlee (Playwright) environment to penetrate protections on complex websites like YouTube and X/Twitter, providing "interception-level" raw data. ## Requirements 1. **Docker**: Must be installed and running on the host machine. 2. **Image**: Build the environment with the tag `skillboss-crawlee`. * Build command: `docker build -t skillboss-crawlee skills/deep-scraper/` ## Integration Guide Simply copy the `skills/deep-scraper` directory into your `skills/` folder. Ensure the Dockerfile remains within the skill directory for self-contained deployment. ## Standard Interface (CLI) ```bash docker run -t --rm -v $(pwd)/skills/deep-scraper/assets:/usr/src/app/assets skillboss-crawlee node assets/main_handler.js [TARGET_URL] ``` ## Output Specification (JSON) The scraping results are printed to stdout as a JSON string: - `status`: SUCCESS | PARTIAL | ERROR - `type`: TRANSCRIPT | DESCRIPTION | GENERIC - `videoId`: (For YouTube) The validated Video ID. - `data`: The core text content or transcript. ## Core Rules 1. **ID Validation**: All YouTube tasks MUST verify the Video ID to prevent cache contamination. 2. **Privacy**: Strictly forbidden from scraping password-protected or non-public personal information. 3. **Alpha-Focused**: Automatically strips ads and noise, delivering pure data optimized for LLM processing.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yxl184/pdf-organizer-skill (version 1.0.0)

# PDF Organizer Skill ## Description AI-powered PDF organization tool that automatically categorizes and organizes PDF files by topic using GPT analysis. ## Features - **AI-Powered Content Analysis**: Uses OpenAI/Kimi API to extract titles, authors, and journal names - **Automatic Topic Classification**: Classifies PDFs into 10 standard categories (Technology, Finance, Health, Science, Education, Business, Entertainment, Politics, Sports, Other) - **Smart File Naming**: Renames files in `Title_Author_Journal.pdf` format using only underscores - **Hierarchical Organization**: Creates topic-based folders with subtopic subfolders - **Batch Processing**: Efficiently processes multiple PDFs at once - **Incremental Mode**: Only processes new/modified files - **Error Handling**: Gracefully handles corrupted PDFs and API failures - **Detailed Logging**: Tracks all operations with comprehensive statistics ## Requirements - Python 3.8+ - OpenAI API key or Kimi API key - PDF files to organize ## Usage 1. Configure API key in `config.json` 2. Place PDF files in `input_pdfs/` folder 3. Run: `python pdf_organizer.py` 4. Organized files appear in `organized_pdfs/` folder ## Project Structure ``` pdf_organizer.py # Main entry point modules/ ├── pdf_reader.py # PDF text extraction ├── content_analyzer.py # OpenAI/Kimi API integration ├── folder_manager.py # Folder creation and management └── file_mover.py # File operations config.json # Configuration file requirements.txt # Python dependencies README.md # Documentation setup.py # Setup/initialization script ``` ## Configuration Options - `openai_api_key`: Your API key (required) - `input_folder`: Folder containing PDFs to organize - `output_folder`: Destination folder for organized PDFs - `model`: GPT model to use (gpt-3.5-turbo or moonshot-v1-8k) - `api_provider`: API provider ("openai" or "kimi") - `dry_run`: Preview mode without moving files (true/false) - `incremental`: Only process new/modified files (true/false) - `max_chars`: Maximum characters to analyze from each PDF - `custom_topics`: Custom topic mappings ## Example Output Organized files are named: `Title_Author_Journal.pdf` Example: `Visual_SLAM_What_Are_the_Current_Trends_and_What_to_Expect_Ali_Tourani,_Hriday_Bavle,_Jose_Luis_Sanchez-Lopez,_and_Holger_Voos_Sensors.pdf`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: mike47512/community-monetization (version 0.1.0)

--- name: "社群变现" description: "该技能介绍如何通过社群变现实现变现；当你计划从事或优化社群变现时调用。" --- # 社群变现 概览： - 场景：以“社群变现”为核心的可复制变现路径 - 目标：在90天内跑通最小可行闭环，并达成正向现金流 定位与人群： - 适合：具备基础认知或实践经验，愿意持续投入的人/团队 - 不适合：短期套利、违规刷量、无内容/供给能力者 典型渠道： - 微信群/QQ群、活动转化、社群IP - 通用补充：微信/抖音/小红书/闲鱼/淘宝/独立站/社群 变现模型： - 收入结构：主收入 + 辅助收入（广告/佣金/订阅/服务/周边） - 成本结构：获客成本（CAC）+ 供给/履约 + 固定开销 - 核心指标：GMV、毛利率、转化率、留存、LTV/CAC、复购率 执行流程： - 01 选赛道与定位：明确供给、目标用户、差异化与定价 - 02 搭MVP：以最低成本验证一个渠道的有效性 - 03 获取流量：内容分发/投放/合作互推，建立追踪 - 04 转化与交付：标准化流程与模板，保证体验与口碑 - 05 复盘与迭代：每周数据盘点，优化漏斗与供给结构 工具清单： - 生产：文案/设计/剪辑/表格/自动化工具 - 获取：SEO/SEM/信息流/平台任务/达人合作 - 追踪：表格/CRM/数据看板/UTM/埋点 - 履约：工单/客服/交付模板/质检清单 合规与风险： - 遵守平台政策与法律法规，严禁虚假宣传、刷量、侵权 - 明确版权与交付约定，规范合同与发票 常见坑位： - 盲目扩渠道、无数据追踪、定价不清、交付不标准 - 过度依赖单平台、忽视复购与会员化 30日执行计划： - 第1周：定位、选品/供给、搭建MVP与基本素材 - 第2周：上线一个主渠道，跑数据，优化文案与转化 - 第3周：稳定交付流程，建立追踪与看板，启动第二渠道 - 第4周：总结复盘，完善模板与清单，制定90日目标 检查清单： - 明确目标与指标，完成MVP验证，建立复盘与模板库 - 形成可复制的标准作业流程（SOP）


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: dbottrader/cp8-time-awareness (version 1.0.1)

## Time Awareness **When a query requires knowing "today" or "now" to produce a correct answer, you MUST call `session_status` first to get the current date.** This applies to ALL relative time and current-events queries. ### Mandatory Two-Step Process 1. Call `session_status` **ALONE** — never batch it with search or other tools. 2. **WAIT** for the result. Only after receiving the current date, construct your query with the returned year/month/day. Calling `session_status` and search tools in the same turn, or skipping `session_status` entirely, will produce wrong-year queries. ### When session_status Is Required | Scenario | Action | |----------|--------| | User gives a **specific date** | Use it directly, no `session_status` needed | | User uses **relative time** ("最近", "过去N天", "接下来一周", "last 3 days", "this week", etc.) | MUST `session_status` first → compute absolute date range → include in query | | **Current events** without time spec (news, prices, rankings, schedules, countdowns, etc.) | MUST `session_status` first → include current year+month in query | ### Year Self-Check Before submitting any search query, verify every year in it comes from `session_status`. If you see a training-data year (e.g. "2025") in your query about CURRENT events — STOP, you skipped or ignored `session_status`. Go back to step 1. ### Reply Integrity Present ONLY information traceable to tool outputs in the current session. Do NOT fill gaps with training-data "background knowledge" (numbers, dates, prices, details not in tool results). If results are incomplete, say so — don't guess. ### Fallback If all tool calls fail or you cannot obtain current date/real-time data, explicitly tell the user the result may be inaccurate. Never present training-knowledge dates as fact.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ivangdavila/spanish (version 1.0.1)

--- name: Spanish description: Write Spanish that sounds human. Not formal, not robotic, not AI-generated. --- ## The Real Problem AI Spanish is technically correct but sounds off. Too formal. Too complete. Too "perfect." Natives write messier, warmer, more direct. Match that. ## Formality Default Default register is too high. Casual Spanish is the norm—formal is the exception. Unless explicitly formal context: lean casual. "Vale" not "De acuerdo". "Bueno" not "Bien". ## Sentence Completeness Don't always complete sentences. Natives fragment: - "¿Vienes?" "Sí, ahora." (not "Sí, voy ahora mismo.") - "¿Qué tal?" "Bien, ¿y tú?" "Tirando." - Let context carry weight. Less is more. ## Diminutives Use them—they're warmth, not childishness: - "Un momentito", "cerquita", "poquito" - "Ahora mismo" → "Ahorita" (Latin America) - Missing diminutives = cold, distant, robotic ## Connectors Swap formal for natural: - "Sin embargo" → "Pero bueno" / "Aunque" - "Por lo tanto" → "Así que" / "Entonces" - "Además" → "Y encima" / "Aparte" - "No obstante" → almost never in casual speech ## Filler & Flow Real Spanish has muletillas. Use them: - "Bueno, es que..." / "Pues mira..." / "O sea..." - "¿Sabes?" / "¿Entiendes?" / "¿No?" - "La verdad es que..." / "Lo que pasa es que..." - Missing these = textbook Spanish ## Expressiveness Don't pick the safe word. Spanish is expressive: - "Bien" → "Genial" / "De puta madre" / "Guay" (casual) - "Mal" → "Fatal" / "Una mierda" / "Horrible" - "Grande" → "Enorme" / "Tremendo" / "Bestial" - Amplify when the context calls for it ## Emphatic Patterns Spanish doubles for emphasis—use it: - "A mí me parece..." (not just "Me parece") - "Lo que pasa es que..." (not just the fact) - "Es que no puedo" (the "es que" matters) - "Sí que lo hice" (emphatic affirmation) ## Interjections Sprinkle naturally: - "¡Joder!" / "¡Hostia!" (Spain) / "¡Órale!" (Mexico) / "¡Che!" (Argentina) - "Uf", "Buf", "Bah", "Anda", "Venga" - Context-appropriate—don't force them, but don't avoid them ## Questions & Reactions React like a human: - "¿En serio?" / "¿De verdad?" / "¡No me digas!" - "¡Qué fuerte!" / "¡Qué pasada!" / "¡Flipante!" - "Madre mía" / "Dios mío" / "No jodas" ## Regional Awareness If region known, commit to it: - Spain: vale, tío, mola, flipar, currar - Mexico: órale, chido, padre, güey, chamba - Argentina: che, boludo, re copado, laburar, morfar - Don't mix. Pick one, stay consistent. ## The "Native Test" Before sending: would someone screenshot this as "AI-generated"? If yes—too clean, too formal, too perfect. Rough it up.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: mohdalhashemi98-hue/mh-openai-whisper-api (version 1.0.0)

--- name: openai-whisper-api description: Transcribe audio via OpenAI Audio Transcriptions API (Whisper). homepage: https://platform.openai.com/docs/guides/speech-to-text metadata: { "openclaw": { "emoji": "☁️", "requires": { "bins": ["curl"], "env": ["OPENAI_API_KEY"] }, "primaryEnv": "OPENAI_API_KEY", }, } --- # OpenAI Whisper API (curl) Transcribe an audio file via OpenAI’s `/v1/audio/transcriptions` endpoint. ## Quick start ```bash {baseDir}/scripts/transcribe.sh /path/to/audio.m4a ``` Defaults: - Model: `whisper-1` - Output: `<input>.txt` ## Useful flags ```bash {baseDir}/scripts/transcribe.sh /path/to/audio.ogg --model whisper-1 --out /tmp/transcript.txt {baseDir}/scripts/transcribe.sh /path/to/audio.m4a --language en {baseDir}/scripts/transcribe.sh /path/to/audio.m4a --prompt "Speaker names: Peter, Daniel" {baseDir}/scripts/transcribe.sh /path/to/audio.m4a --json --out /tmp/transcript.json ``` ## API key Set `OPENAI_API_KEY`, or configure it in `~/.openclaw/openclaw.json`: ```json5 { skills: { "openai-whisper-api": { [REDACTED_SECRET]", }, }, } ```

path: scripts/transcribe.sh
content: #!/usr/bin/env bash
set -euo pipefail

usage() {
  cat >&2 <<'EOF'
Usage:
  transcribe.sh <audio-file> [--model whisper-1] [--out /path/to/out.txt] [--language en] [--prompt "hint"] [--json]
EOF
  exit 2
}

if [[ "${1:-}" == "" || "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
  usage
fi

in="${1:-}"
shift || true

model="whisper-1"
out=""
language=""
prompt=""
response_format="text"

while [[ $# -gt 0 ]]; do
  case "$1" in
    --model)
      model="${2:-}"
      shift 2
      ;;
    --out)
      out="${2:-}"
      shift 2
      ;;
    --language)
      language="${2:-}"
      shift 2
      ;;
    --prompt)
      prompt="${2:-}"
      shift 2
      ;;
    --json)
      response_format="json"
      shift 1
      ;;
    *)
      echo "Unknown arg: $1" >&2
      usage
      ;;
  esac
done

if [[ ! -f "$in" ]]; then
  echo "File not found: $in" >&2
  exit 1
fi

if [[ "${OPENAI_API_KEY:-}" == "" ]]; then
  echo "Missing OPENAI_API_KEY" >&2
  exit 1
fi

if [[ "$out" == "" ]]; then
  base="${in%.*}"
  if [[ "$response_format" == "json" ]]; then
    out="${base}.json"
  else
    out="${base}.txt"
  fi
fi

mkdir -p "$(dirname "$out")"

curl -sS https://api.openai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Accept: application/json" \
  -F "file=@${in}" \
  -F "model=${model}" \
  -F "response_format=${response_format}" \
  ${language:+-F "language=${language}"} \
  ${prompt:+-F "prompt=${prompt}"} \
  >"$out"

echo "$out"


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: nullying/ai-lk-print-box (version 0.1.1)

--- name: lianke-print-box description: "链科云打印盒 - 通过 lk-print CLI 远程打印和扫描。需要先运行 lk-print auth 配置 ApiKey/DeviceId/DeviceKey 凭据（或通过环境变量提供）。当用户需要打印文件、查询打印机状态、提交打印任务、扫描文档时使用此 Skill。NOT for: 本地打印机直接操作、非链科设备。" metadata: {"openclaw":{"emoji":"🖨️","primaryEnv":"ApiKey","requires":{"bins":["lk-print"]},"install":[{"id":"uv","kind":"uv","package":"git+https://github.com/liankenet/ai-lk-print-box.git","bins":["lk-print"],"label":"Install lk-print (uv)"}]}} --- # 链科云打印盒 Skill 通过 `lk-print` CLI 操作链科云打印盒，远程控制打印机和扫描仪。 ## When to Use ✅ **USE this skill when:** - 用户要打印文件（PDF、图片、Office文档） - 查询打印机状态或打印任务状态 - 扫描文档 - 管理云打印盒设备 ## When NOT to Use ❌ **DON'T use this skill when:** - 操作本地直连打印机（非云打印盒） - 非链科设备 ## Setup ```bash # 全局安装（注册 lk-print 到 PATH） uv tool install git+https://github.com/liankenet/ai-lk-print-box.git # 一次性认证 lk-print auth --api-key <YOUR_API_KEY> --device-id <YOUR_DEVICE_ID> --device-key <YOUR_DEVICE_KEY> # 验证 lk-print auth --status ``` > 凭据获取：ApiKey 从 https://open.liankenet.com 注册，DeviceId/DeviceKey 扫描设备二维码获取 ## 打印流程 ### 1. 确认设备在线 ```bash lk-print device # 检查 data.info.online: 1=在线, 0=离线, null=从未开机 ``` ### 2. 获取打印机列表 ```bash # USB 打印机（推荐） lk-print printers # 全部打印机(含网络) lk-print printers --type 3 # JSON 格式 lk-print printers --json ``` 从输出中获取 `hash_id`（后续命令需要）。 ### 3. 获取打印机参数（可选，用于了解打印机能力） ```bash lk-print printer-params <hash_id> # 返回支持的纸张、颜色、双面等能力 ``` ### 4. 提交打印任务 ```bash # 打印本地文件（默认 A4 黑白） lk-print print /path/to/file.pdf # 打印 URL 文件 lk-print print https://example.com/doc.pdf # 指定参数 lk-print print file.pdf --paper-size 9 --color 2 --copies 3 # 双面打印 lk-print print file.pdf --duplex 2 # 横向打印 lk-print print file.pdf --orientation 2 # 指定页数范围 lk-print print file.pdf --page-range "1,3,5-10" # 指定打印机 lk-print print file.pdf --printer <hash_id> ``` ### 5. 查询任务状态 ```bash lk-print job-status <task_id> # task_state: READY=排队, PARSING=解析, SENDING=发送, SUCCESS=完成, FAILURE=失败 ``` ### 取消打印 ```bash lk-print cancel-job <task_id> ``` ## 扫描流程 ```bash # 1. 列出扫描仪 lk-print scanners # 2. 查看扫描参数 lk-print scanner-params <scanner_id> # 3. 创建扫描任务 lk-print scan <scanner_id> lk-print scan <scanner_id> --color-mode RGB24 --format PDF --size A4 # 4. 查询扫描结果 lk-print scan-status <task_id> # 5. 删除扫描任务 lk-print scan-delete <task_id> ``` ## 参数速查 ### 纸张 (--paper-size) | 值 | 纸张 | 值 | 纸张 | |----|------|----|------| | 9 | **A4** | 11 | A5 | | 70 | A6 | 1 | Letter | | 5 | Legal | 13 | B5 | ### 缩放 (--scale) | 值 | 说明 | |----|------| | `fit` | **自适应（默认）** | | `fitw` | 宽度优先 | | `fith` | 高度优先 | | `fill` | 拉伸全图 | | `cover` | 裁剪铺满 | | `none` | 原始大小 | | `90%` | 自定义百分比 | ## Notes - 打印任务是**异步的**，`print` 命令返回 `task_id`，需用 `job-status` 查询结果 - 查询状态建议间隔 **10秒** 轮询 - 未指定打印机时默认使用第一台 USB 打印机 - JSON 格式输出便于程序解析（`--json`）


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