Skill Vetter
一个面向 Security 场景的 Agent 技能。原始说明:Security-first skill vetting for AI agents. Use before installing any skill from ClawdHub, GitHub, or other sources. Checks for red flags, permission scope, and suspicious patterns.
name: frisk
description: "Pre-install security audit and vulnerability scanner for ClawHub skills — scan by slug or local path, 9 threat intel sources, 7 checks including malware scanning, dependency vulnerabilities, and credential leak detection."
version: 3.0.3
metadata:
openclaw:
emoji: "⚡"
homepage: https://github.com/jchandler187/frisk
requires:
bins:
anyBins:
install:
package: "@lowwattlabs/frisk"
bins:
envVars:
required: false
description: "Base directory for intel cache and reports (default: ~/.frisk)"
required: false
description: "Override intel cache directory (default: FRISK_HOME/intel)"
required: false
description: "Override reports output directory (default: FRISK_HOME/reports)"
Frisk is a local-first security scanner for ClawHub skills. It runs 7 autonomous checks against 9 live threat intelligence feeds and returns a structured verdict — pass, warn, or fail — before you install.
Unlike instruction-card security skills that tell agents what to look for, Frisk actually runs the checks: dependency lookups against CISA KEV and OSV, credential scanning with Gitleaks, malware pattern matching with YARA, IOC matching against ThreatFox/URLhaus/MalwareBazaar/Feodo, behavioral analysis for eval and injection patterns, and prompt injection detection in SKILL.md files.
All scanning is offline. No telemetry. No phone-home. No data leaves your machine.
frisk scan weather-forecast # Scan by ClawHub slug
frisk scan ./my-skill # Scan a local skill directory
frisk scan ./my-skill --checks dep-scan,secret-scan
frisk scan ./my-skill --json # JSON output for pipelines
First run sets up a Python venv and syncs threat intel automatically. After that, scanning works with zero configuration.
Frisk downloads the skill to a sandboxed 0700 temp directory, strips execute bits from all files, suppresses npm install scripts, runs all enabled checks against the local intel cache, produces a structured JSON report with findings, and cleans up the downloaded skill.
Exit codes: 0 = pass, 1 = warn, 2 = fail
| Check | What it does |
|-------|-------------|
| dep-scan | Cross-references dependencies against CISA KEV and OSV databases |
| static-analysis | Runs Semgrep rules for security anti-patterns (offline, no phone-home) |
| secret-scan | Scans for hardcoded API keys, tokens, and credentials using Gitleaks |
| yara-scan | Matches files against YARA rules for malware patterns |
| ioc-match | Matches IPs, domains, URLs, and file hashes against ThreatFox, URLhaus, MalwareBazaar, and Feodo Tracker |
| behavioral | Detects eval usage, shell injection, data exfiltration vectors, DNS tunneling |
| prompt-inject | Detects prompt injection and instruction-hiding patterns in SKILL.md |
CISA KEV, OSV (npm + PyPI), EPSS, MalwareBazaar, URLhaus, ThreatFox, Feodo Tracker, YARA Rules, Semgrep Rules
Run frisk sync to refresh the intel cache. First scan auto-syncs if no cache exists.
When an agent invokes this skill through OpenClaw:
dep-scan, static-analysis, secret-scan, yara-scan, ioc-match, behavioral, prompt-inject. Default: all 7.~/.frisk/intel/ (threat intel cache), skill directory passed as target~/.frisk/intel/, ~/.frisk/reports/, ~/.frisk/venv/, ~/.frisk/frisk.lognpm install -g @lowwattlabs/frisk
Or let OpenClaw install it via the skill install spec above.
MIT-0