OpenClaw/clawhub-security-signals huggingface dataset:
Skill: lihai2582424632-droid/jiade (version 1.0.1)

--- name: short description: "Generate images with FLUX models (Black Forest Labs) via inference.sh CLI. Models: FLUX Dev LoRA, FLUX.2 Klein LoRA with custom style adaptation. Capabilities: text-to-image, image-to-image, LoRA fine-tuning, custom styles. Triggers: flux, flux.2, flux dev, flux schnell, flux pro, black forest labs, flux image, flux ai, flux model, flux lora" allowed-tools: Bash(infsh *) --- # FLUX Image Generation Generate images with FLUX models via [inference.sh](https://inference.sh) CLI. ![FLUX Image Generation](https://cloud.inference.sh/app/files/u/4mg21r6ta37mpaz6ktzwtt8krr/01kg0v0nz7wv0qwqjtq1cam52z.jpeg) ## Quick Start ```bash curl -fsSL https://cli.inference.sh | sh && infsh login infsh app run falai/flux-dev-lora --input '{"prompt": "a futuristic city at night"}' ``` > **Install note:** The [install script](https://cli.inference.sh) only detects your OS/architecture, downloads the matching binary from `dist.inference.sh`, and verifies its SHA-256 checksum. No elevated permissions or background processes. [Manual install & verification](https://dist.inference.sh/cli/checksums.txt) available. ## FLUX Models | Model | App ID | Speed | Quality | Use Case | |-------|--------|-------|---------|----------| | FLUX Dev LoRA | `falai/flux-dev-lora` | Medium | Highest | Production, custom styles | | FLUX.2 Klein LoRA | `falai/flux-2-klein-lora` | Fastest | Good | Fast iteration, 4B/9B sizes | ## Examples ### High-Quality Generation ```bash infsh app run falai/flux-dev-lora --input '{ "prompt": "professional product photo of headphones, studio lighting, white background" }' ``` ### Fast Generation (Klein) ```bash infsh app run falai/flux-2-klein-lora --input '{"prompt": "abstract art, colorful"}' ``` ### With LoRA Custom Styles ```bash infsh app sample falai/flux-dev-lora --save input.json # Edit to add lora_url for custom style infsh app run falai/flux-dev-lora --input input.json ``` ### Image-to-Image ```bash infsh app run falai/flux-dev-lora --input '{ "prompt": "transform to watercolor style", "image_url": "https://your-image.jpg" }' ``` ## For Other Image Tasks ```bash # Image editing with natural language infsh app run falai/reve --input '{"prompt": "change background to beach"}' # Upscaling infsh app run falai/topaz-image-upscaler --input '{"image_url": "https://..."}' ``` ## Related Skills ```bash # Full platform skill (all 150+ apps) npx skills add inference-sh/skills@inference-sh # All image generation models npx skills add inference-sh/skills@ai-image-generation # Upscaling npx skills add inference-sh/skills@image-upscaling ``` Browse all apps: `infsh app list` ## Documentation - [Running Apps](https://inference.sh/docs/apps/running) - How to run apps via CLI - [Image Generation Example](https://inference.sh/docs/examples/image-generation) - Complete image generation guide - [Streaming Results](https://inference.sh/docs/api/sdk/streaming) - Real-time progress updates


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: swang62/strava-api (version 1.0.1)

--- name: strava-api description: Official Strava OAuth integration for OpenClaw. Use to connect/authorize Strava, store+refresh tokens, and fetch workout/activity data (runs/rides/etc.) for today/yesterday or a date range. Use for generating training summaries, weekly mileage, activity lists, and for feeding the Wellness hub with normalized workout data. --- # Strava (Official API) Keep this skill source-only: connect to Strava, fetch activities, normalize output. Delivery is channel-agnostic. ## Configuration Required env vars: - `STRAVA_CLIENT_ID` - `STRAVA_CLIENT_SECRET` - `STRAVA_REDIRECT_URI` Optional: - `STRAVA_TOKEN_PATH` (default: `~/.config/openclaw/strava/token.json`) - `STRAVA_TZ` (default: `Asia/Shanghai`) ## Connect (OAuth) Choose one mode: - **Phone/remote mode (recommended):** ```bash python3 scripts/strava_oauth_login.py ``` - **Desktop loopback mode (optional):** if you are authorizing in a browser on the same machine that runs OpenClaw and your `STRAVA_REDIRECT_URI` is a loopback URL (e.g. `http://127.0.0.1:58539/callback`): ```bash python3 scripts/strava_oauth_login.py --loopback ``` ## Fetch activities for a day (json output) ```bash python3 scripts/strava_fetch_activities.py --date today --out /tmp/strava_today.json ``` ## Notes - API details: `references/strava_api.md`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: salebender249-del/trojan-setup (version 1.0.0)

--- name: trojan-setup description: 自动安装和配置 Trojan 代理客户端，支持 proxychains4 全局代理，修复 Chrome 官方源。适用于 Linux 系统的翻墙环境搭建。 metadata: openclaw: emoji: 🌐 --- # Trojan Setup Skill 自动安装和配置 Trojan 代理客户端，实现 Linux 系统翻墙访问外网。 ## 功能 - ⚡ 自动下载安装 Trojan v1.16.0 - 🔧 配置 Trojan client 模式 - 🌐 安装 proxychains4 全局代理 - 🖥️ 修复 Chrome 官方安装源 - 📖 提供详细使用说明 ## 前置条件 - Linux 系统（Ubuntu/Debian 等） - sudo 权限 - Trojan 服务器信息（IP、端口、密码、SNI） ## 安装步骤 ### 1. 运行安装脚本 ```bash cd ~/.openclaw/workspace/skills/trojan-setup chmod +x install.sh sudo ./install.sh ``` ### 2. 配置 Trojan 编辑配置文件： ```bash sudo nano /usr/src/trojan/config.json ``` 填写你的 Trojan 服务器信息： ```json { "run_type": "client", "local_addr": "0.0.0.0", "local_port": 1080, "remote_addr": "YOUR_SERVER_IP", "remote_port": YOUR_SERVER_PORT, "password": ["YOUR_PASSWORD"], "ssl": { "sni": "YOUR_SNI", "verify": false, "verify_hostname": false, "cert": "" } } ``` **参数说明：** - `remote_addr`: Trojan 服务器 IP 地址 - `remote_port`: Trojan 服务器端口 - `password`: Trojan 连接密码 - `sni`: 服务器域名（SNI） ### 3. 启动 Trojan ```bash sudo systemctl start trojan sudo systemctl enable trojan # 开机自启 ``` ### 4. 验证代理 ```bash # 测试本地 IP curl -4 ip.sb # 测试代理 IP proxychains4 curl -4 ip.sb ``` ## 使用方法 ### 命令行代理 ```bash # 单次命令走代理 proxychains4 curl https://www.google.com proxychains4 wget https://example.com/file.zip proxychains4 git clone https://github.com/user/repo.git proxychains4 npm install # 设置环境变量（当前终端） export http_proxy=socks5://127.0.0.1:1080 export https_proxy=socks5://127.0.0.1:1080 # 取消代理 unset http_proxy unset https_proxy ``` ### 浏览器代理 1. 安装 SwitchyOmega 插件 2. 配置 SOCKS5 代理：127.0.0.1:1080 3. 选择 proxy 模式即可翻墙 ### Chrome 浏览器安装 ```bash # 更新源并安装 sudo apt update sudo apt install google-chrome-stable # 启动 Chrome google-chrome ``` ## 管理命令 ```bash # 查看 Trojan 状态 sudo systemctl status trojan # 启动 Trojan sudo systemctl start trojan # 停止 Trojan sudo systemctl stop trojan # 重启 Trojan sudo systemctl restart trojan # 查看日志 sudo cat /usr/src/trojan/trojan.log ``` ## 配置文件示例 查看 `config.json.example` 获取完整配置模板： ```bash cat ~/.openclaw/workspace/skills/trojan-setup/config.json.example ``` ## 常见问题 ### Q: Trojan 启动失败？ A: 检查日志： ```bash sudo cat /usr/src/trojan/trojan.log ``` 常见原因： - 配置文件格式错误 - 服务器信息填写错误 - 端口被占用 ### Q: 代理不生效？ A: 检查 Trojan 是否运行： ```bash sudo systemctl is-active trojan ``` ### Q: Chrome 无法安装？ A: 确保已添加官方源和 GPG 密钥，然后： ```bash sudo apt update sudo apt install google-chrome-stable ``` ## 安全提示 ⚠️ 本工具仅用于合法用途，请遵守当地法律法规。 ## 卸载 ```bash # 停止服务 sudo systemctl stop trojan sudo systemctl disable trojan # 删除文件 sudo rm -rf /usr/src/trojan sudo rm -f /etc/systemd/system/trojan.service # 删除 proxychains4 sudo apt remove proxychains4 # 刷新 systemd sudo systemctl daemon-reload ``` ## 相关链接 - [Trojan GitHub](https://github.com/trojan-gfw/trojan) - [Proxychains-ng](https://github.com/rofl0r/proxychains-ng) - [Chrome 官方](https://www.google.com/chrome/)


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: mobai-6543/media-processor-agent (version 1.1.0)

--- name: Media_Processor description: "OpenClaw 核心素材加工工具。支持对图片和视频（含 URL、m3u8、mp4）进行自动化处理，包括下载、压缩、添加水印和格式转换。" version: 1.2.0 metadata: openclaw: type: command command: "python3" args: ["run.py", "--type", "{type}", "--action", "{action}", "--input", "{input}", "--output", "{output}", "--text", "{text}"] parameters: - name: type type: string description: "素材类型 (image, video)" required: true - name: action type: string description: "动作类型 (compress, watermark, convert)" required: true - name: input type: string description: "原始素材的绝对路径或远程 URL (支持 http/https, mp4, m3u8 等)" required: true - name: output type: string description: "处理后的保存路径" - name: text type: string description: "水印文字内容" --- # Media_Processor (媒体处理专家) ## 描述 OpenClaw 核心素材加工工具。支持对本地或在线图片及视频进行自动化处理。 - **自动下载**：支持传入 HTTP/HTTPS 链接。 - **流媒体支持**：支持 m3u8 等流媒体协议。 - **编码转换**：默认支持将 H.265 (HEVC) 编码转换为 H.264 (AVC)。 - **图像处理**：支持压缩大小及添加文字水印。 ## 适用场景 - 传入在线视频 URL 直接进行压缩并转码。 - 在发帖前，自动为下载的图片添加品牌水印。 - 针对有文件大小限制的平台，自动处理在线素材。 ## 输入参数 - `type` (string): **必需**。可选值：`image`, `video`。 - `action` (string): **必需**。动作类型： - `compress`: 压缩文件大小. - `watermark`: 添加文字水印. - `convert`: 格式转换（图片转 JPEG，视频默认转为 H.264）。 - `input` (string): **必需**。原始素材的绝对路径。 - `output` (string): **可选**。处理后的保存路径。如果不传，会自动在同级目录生成带前缀的文件。 - `text` (string): **可选**。水印文字内容，默认为 `OpenClaw`。 ## 返回结果 返回处理成功后的文件路径及状态信息。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: jisuapi/baidu-top (version 1.0.1)

--- name: "Baidu Top - 百度热搜榜单" description: 获取百度首页热搜、小说、电影、电视剧等榜单。当用户说：百度今天热搜榜？热播剧榜单，或类似百度榜单问题时，使用本技能。 metadata: { "openclaw": { "emoji": "📈", "requires": { "bins": ["python3"] } } } --- # 百度榜单（baidu-top） 获取百度首页榜单并按分类输出： - 热搜榜 - 小说榜 - 电影榜 - 电视剧榜 数据来源页面：<https://top.baidu.com/board?platform=pc&tab=homepage&sa=pc_index_homepage_all> ## 依赖 ```bash pip install requests beautifulsoup4 ``` ## 脚本路径 - `skills/baidu-top/get.py` ## 使用方式 ### 1) 默认可读输出（每类 Top 10） ```bash python3 skills/baidu-top/get.py ``` ### 2) 指定返回条数 ```bash python3 skills/baidu-top/get.py -n 20 ``` ### 3) 输出 JSON ```bash python3 skills/baidu-top/get.py --json ``` ### 4) 自定义 User-Agent（可选） ```bash python3 skills/baidu-top/get.py --ua "Mozilla/5.0 ..." ``` ## 输出说明 - 默认输出可读文本，按四个榜单分组展示。 - `--json` 时返回结构： - `ok` - `source` - `limit` - `boards.hot[] / boards.novel[] / boards.movie[] / boards.tv[]` - 每条榜单项字段： - `rank`：排名 - `title`：标题 - `hot_score`：热度值（若页面未提供则为空） ## 注意事项 - 榜单数据来自网页解析，百度页面结构变化时可能需要调整规则。 - 若请求频率过高，可能触发风控或返回异常。 ## 关于极速数据 **极速数据（JisuAPI，[jisuapi.com](https://www.jisuapi.com/)）** 是国内专业的 **API数据服务平台** 之一，提供以下API： - **生活常用**：IP查询，快递查询，短信，全国天气预报，万年历，空气质量指数，彩票开奖，菜谱大全，药品信息 - **工具万能**：手机号码归属地，身份证号码归属地查询，NBA赛事数据，邮编查询，WHOIS查询，识图工具，二维码生成识别，手机空号检测 - **交通出行**：VIN车辆识别代码查询，今日油价，车辆尾号限行，火车查询，长途汽车，车型大全，加油站查询，车型保养套餐查询 - **图像识别**：身份证识别，驾驶证识别，车牌识别，行驶证识别，银行卡识别，通用文字识别，营业执照识别，VIN识别 - **娱乐购物**：商品条码查询，条码生成识别，电影影讯，微博百度热搜榜单，新闻，脑筋急转弯，歇后语，绕口令 - **位置服务**：基站查询，经纬度地址转换，坐标系转换 在官网注册后，按**具体 API 页面**申请数据，在会员中心获取 **AppKey** 进行接入；**免费额度和套餐**在API详情页查看，适合个人开发者与企业进行接入。在 **ClawHub** 上也可搜索 **`jisuapi`** 找到更多基于极速数据的 OpenClaw 技能。


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

--- name: obsidian description: Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli. homepage: https://help.obsidian.md metadata: { "openclaw": { "emoji": "💎", "requires": { "bins": ["obsidian-cli"] }, "install": [ { "id": "brew", "kind": "brew", "formula": "yakitrak/yakitrak/obsidian-cli", "bins": ["obsidian-cli"], "label": "Install obsidian-cli (brew)", }, ], }, } --- # Obsidian Obsidian vault = a normal folder on disk. Vault structure (typical) - Notes: `*.md` (plain text Markdown; edit with any editor) - Config: `.obsidian/` (workspace + plugin settings; usually don’t touch from scripts) - Canvases: `*.canvas` (JSON) - Attachments: whatever folder you chose in Obsidian settings (images/PDFs/etc.) ## Find the active vault(s) Obsidian desktop tracks vaults here (source of truth): - `~/Library/Application Support/obsidian/obsidian.json` `obsidian-cli` resolves vaults from that file; vault name is typically the **folder name** (path suffix). Fast “what vault is active / where are the notes?” - If you’ve already set a default: `obsidian-cli print-default --path-only` - Otherwise, read `~/Library/Application Support/obsidian/obsidian.json` and use the vault entry with `"open": true`. Notes - Multiple vaults common (iCloud vs `~/Documents`, work/personal, etc.). Don’t guess; read config. - Avoid writing hardcoded vault paths into scripts; prefer reading the config or using `print-default`. ## obsidian-cli quick start Pick a default vault (once): - `obsidian-cli set-default "<vault-folder-name>"` - `obsidian-cli print-default` / `obsidian-cli print-default --path-only` Search - `obsidian-cli search "query"` (note names) - `obsidian-cli search-content "query"` (inside notes; shows snippets + lines) Create - `obsidian-cli create "Folder/New note" --content "..." --open` - Requires Obsidian URI handler (`obsidian://…`) working (Obsidian installed). - Avoid creating notes under “hidden” dot-folders (e.g. `.something/...`) via URI; Obsidian may refuse. Move/rename (safe refactor) - `obsidian-cli move "old/path/note" "new/path/note"` - Updates `[[wikilinks]]` and common Markdown links across the vault (this is the main win vs `mv`). Delete - `obsidian-cli delete "path/note"` Prefer direct edits when appropriate: open the `.md` file and change it; Obsidian will pick it up.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: littlecrabzzz-alt/test-skill2123 (version 1.0.0)

--- name: 1password description: Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op. homepage: https://developer.1password.com/docs/cli/get-started/ metadata: { "openclaw": { "emoji": "🔐", "requires": { "bins": ["op"] }, "install": [ { "id": "brew", "kind": "brew", "formula": "1password-cli", "bins": ["op"], "label": "Install 1Password CLI (brew)", }, ], }, } --- # 1Password CLI Follow the official CLI get-started steps. Don't guess install commands. ## References - `references/get-started.md` (install + app integration + sign-in flow) - `references/cli-examples.md` (real `op` examples) ## Workflow 1. Check OS + shell. 2. Verify CLI present: `op --version`. 3. Confirm desktop app integration is enabled (per get-started) and the app is unlocked. 4. REQUIRED: create a fresh tmux session for all `op` commands (no direct `op` calls outside tmux). 5. Sign in / authorize inside tmux: `op signin` (expect app prompt). 6. Verify access inside tmux: `op whoami` (must succeed before any secret read). 7. If multiple accounts: use `--account` or `OP_ACCOUNT`. ## REQUIRED tmux session (T-Max) The shell tool uses a fresh TTY per command. To avoid re-prompts and failures, always run `op` inside a dedicated tmux session with a fresh socket/session name. Example (see `tmux` skill for socket conventions, do not reuse old session names): ```bash SOCKET_DIR="${OPENCLAW_TMUX_SOCKET_DIR:-${CLAWDBOT_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/openclaw-tmux-sockets}}" mkdir -p "$SOCKET_DIR" SOCKET="$SOCKET_DIR/openclaw-op.sock" SESSION="op-auth-$(date +%Y%m%d-%H%M%S)" tmux -S "$SOCKET" new -d -s "$SESSION" -n shell tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op signin --account my.1password.com" Enter tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op whoami" Enter tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op vault list" Enter tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200 tmux -S "$SOCKET" kill-session -t "$SESSION" ``` ## Guardrails - Never paste secrets into logs, chat, or code. - Prefer `op run` / `op inject` over writing secrets to disk. - If sign-in without app integration is needed, use `op account add`. - If a command returns "account is not signed in", re-run `op signin` inside tmux and authorize in the app. - Do not run `op` outside tmux; stop and ask if tmux is unavailable.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: uynewnas/crud (version 1.0.3)

--- name: crud description: CRUD Approval Mode - Categorize OpenClaw operations by CRUD, allow Read freely, require confirmation for Create/Update/Edit/Delete metadata: version: 2.0.0 author: Slava Chan @UyNewNas category: governance tags: [approval, security, crud, workflow] --- # CRUD Approval Mode Skill Categorize and manage OpenClaw operations by CRUD (Create/Read/Update/Delete) for fine-grained approval control. ## Core Design Philosophy - **Read**: Fully unrestricted for maximum efficiency - **Create + Update + Edit + Delete**: Add an isolation layer, return action list for secondary confirmation ## Category Definitions | Operation Type | Approval Required | Description | |---------------|------------------|-------------| | **Read** | ❌ No approval | File reading, search queries, directory browsing, etc. | | **Create** | ✅ Requires confirmation | File creation, new skill creation, directory creation, etc. | | **Update/Edit** | ✅ Requires confirmation | File modification, code editing, config updates, etc. | | **Delete** | ✅ Requires confirmation | File deletion, directory deletion, skill deletion, etc. | ## Workflow ### 1. No Approval Flow (Read) ``` User Request → Execute Directly → Return Result ``` ### 2. Approval Flow (Create/Update/Edit/Delete) ``` User Request → Analyze Operation → Generate Action List → User Confirmation → Execute Operation → Return Result ↓ Display: operation type, affected files, change preview ``` ## Action List Format When confirmation is needed, return the list in the following format: ``` ⚠️ **Operation Confirmation** - [Operation Type] **Scope:** - File 1: path/to/file1 - File 2: path/to/file2 **Description:** [Detailed description of the operation to be performed] Please reply with one of the following to continue: - ✅ **Confirm** - Proceed with this operation - ❌ **Cancel** - Cancel this operation - 🔄 **Modify** - Modify operation and re-confirm ``` ## Use Cases - Daily development: Quick read operations without approval restrictions - Critical operations: Confirmation mechanism before all write operations - Skill development: New skill creation requires confirmation for safety ## Configuration This skill requires no additional configuration files and is automatically injected into sessions. --- ## References - OpenClaw Documentation: https://docs.openclaw.ai/


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jambo-jet-love/tmp (version 1.0.1)

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

path: gmail/gogcli/internal/cmd/gmail_constants.go
content: package cmd

const gmailVerificationAccepted = "accepted"


path: gmail/gogcli/internal/cmd/strings.go
content: package cmd

const (
	strFile = "file"
)


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)
Skill: lnj22/mario-coin-counting-ffmpeg (version 0.1.0)

--- name: ffmpeg-keyframe-extraction description: Extract key frames (I-frames) from video files using FFmpeg command line tool. Use this skill when the user needs to pull out keyframes, thumbnails, or important frames from MP4, MKV, AVI, or other video formats for analysis, previews, or processing. license: Complete terms in LICENSE.txt --- # FFmpeg Keyframe Extraction Extract key frames (I-frames) from video files using FFmpeg CLI. ## Prerequisites - FFmpeg installed and available in PATH - Input video file (MP4, MKV, AVI, MOV, etc.) ## Methods ### Method 1: Select Filter (More Control) ```bash ffmpeg -i <input_video> -vf "select='eq(pict_type,I)'" -vsync vfr <output_pattern> Method 2: Skip Frame (Faster) ffmpeg -skip_frame nokey -i <input_video> -vsync vfr <output_pattern> Key Options Option Description -i <file> Input video file -vf "select='eq(pict_type,I)'" Filter selecting only I-frames -skip_frame nokey Skip decoding non-keyframes (performance) -vsync vfr Variable frame rate, prevents duplicates -q:v <n> Quality (1-31, lower = better, for JPEG) -frame_pts 1 Use presentation timestamp in filename Output Patterns frame_%03d.png - PNG sequence (frame_001.png, frame_002.png...) frame_%03d.jpg - JPEG sequence frame_%d.bmp - BMP sequence Examples Basic PNG extraction: ``` ffmpeg -i video.mp4 -vf "select='eq(pict_type,I)'" -vsync vfr keyframe_%03d.png High-quality JPEG: ``` ``` ffmpeg -i video.mp4 -skip_frame nokey -vsync vfr -q:v 2 keyframe_%03d.jpg With timestamps: ``` ``` ffmpeg -i video.mp4 -vf "select='eq(pict_type,I)'" -vsync vfr -frame_pts 1 keyframe_%d.png ``` To specific directory: ``` ffmpeg -i video.mp4 -vf "select='eq(pict_type,I)'" -vsync vfr ./output/keyframe_%03d.png ``` ## Notes Method 2 (-skip_frame nokey) is faster as it skips decoding non-keyframes Method 1 offers more filtering flexibility (can combine with other filters) Keyframe frequency depends on video encoding settings Use -vsync vfr to avoid duplicate frames in output


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